質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Q&A

解決済

1回答

176閲覧

アセンブリ動的参照による定数、列挙体の使用方法

JanTh1989

総合スコア87

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

0グッド

0クリップ

投稿2019/04/01 02:32

前提

「アプリ(C#)⇒ライブラリ(C#)⇒外部ライブラリ(C++)」の参照の流れで、アプリがライブラリからデータ取得を行う一連動作のライブラリ部分開発を行っています。
外部ライブラリは、客先会社の別チームで開発中となり、今後の更新が予想されます。
それにより客先より、ライブラリ⇒外部ライブラリの参照は動的参照にして、外部ライブラリの更新があっても、外部ライブラリさえ更新すれば動作できるものにしたいとの要望をもらいました。

問題

外部ライブラリのソースコードを参照した結果、定数、列挙体が複数種あり、インターフェース関数の引数にもその値を使います。
外部ライブラリを動的参照(DllImportやAppDomain)した場合などでは、関数ラップやインスタンスになってくるため、定数や列挙体を使用できませんでした。
何か動的参照でも定数、列挙体を使用する方法はあるのでしょうか?

補足

開発環境:VisualStudio2015 Professional
.NET:バージョン4.6

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hihijiji

2019/04/01 03:26 編集

外部ライブラリの仕様が変わったら、動的だろうと静的だろうと使えませんよね。 タイプライブラリがあってそれは変更しないとか、何かしらの約束事があるはずです。 約束事があるならそれを質問に書かないと何もわかりません。 もしなければ、約束事をガチガチに固めておかないと貧乏くじを引くことになります。
JanTh1989

2019/04/01 05:19

失礼しました。 外部ライブラリは既存のインターフェースクラス、関数の構成は固定で、更新はインターフェース追加、内部関数改善などが行われる予定です。 そのため、使用するライブラリ側としてはバージョン違いが変更点になってきます。 静的参照の場合は、最新バージョンで参照設定をやり直し、リビルドを要してきます。 動的参照の場合は、アセンブリ名のみ、バージョン指定なしでも読み込み自体は可能で、環境のDLL更新で、リビルドしなくても提供化という観点から、動的参照にしたいそうです。 そのうえで、動的で定数、列挙体は使用可能なのだろうか、という話になります。
Zuishin

2019/04/09 03:41

何もコメントがないということは理解できなかったということですか? 理解できないときには黙る癖がありますか?
guest

回答1

0

ベストアンサー

ソースが手に入るなら、定数・列挙体を C# で書いてコンパイルすればいいのではないでしょうか。

使ったことはありませんが、こういうのもあるそうです。
簡単にP/Invokeを書く方法

投稿2019/04/01 11:24

Zuishin

総合スコア28660

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Zuishin

2019/04/09 03:41

何もコメントがないということは理解できなかったということですか? 理解できないときには黙る癖がありますか?
JanTh1989

2019/04/09 05:18

回答が遅くなりました。 回答ありがとうございます。 P/Invokeで形にすることができました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問