この概念は私にとって新しいものであり、同僚が提案しました。残念ながら、私は彼が何を話しているのか分かりませんでした。誰かが私を啓発できますか?
3 に答える
それに関する多くの情報をここで見つけることができます。
簡単に言うと、PIA は、COM ライブラリの発行者からの COM ライブラリ内の型の "公式" 定義を提供する署名付き相互運用アセンブリです。
利点については、投稿された記事がかなりうまくまとめています。
PIA は、一意の型 ID を提供するため重要です。PIA は、公式の型定義を、他の相互運用アセンブリによって提供される偽の定義と区別します。単一の型 ID を持つことで、PIA で定義された型を共有するアプリケーション間の型の互換性が保証されます。PIA は発行者によって署名され、PrimaryInteropAssembly 属性でラベル付けされているため、同じ型を定義する他の相互運用アセンブリと区別できます。
プライマリ相互運用アセンブリは、COM インターフェイスを .NET 互換型にラップします。メソッドを手動で呼び出す場合のように細かく制御することはできませんが、十分に近いものです。
PIA を使用しない場合:
object _comObject;
Type _comObjectType;
_comObjectType = Type.GetTypeFromProgID("MyCompany.MyApplication.MyObject", true);
_comObject = Activator.CreateInstance(_comObjectType);
string name = (string)_comObjectType.InvokeMember("GetCustomerName", BindingFlags.InvokeMethod, null, _comObject, , new object [] { _customerId });
PIA を使用する場合:
MyCompany.MyApplication.MyObject obj = new MyObject();
string name = obj.GetCustomerName(_customerId);
例を通して簡単に言うと、拡張機能を備えた他のオフィス ツール (MS word、visio など) に似たアプリケーションを開発する場合、PIA を使用してプロジェクトでオフィス ツールの機能を使用できます。描画アプリ、クラス ダイアグラムの作成には Visio パネルを使用します。