Dynamo パッケージで COM (相互運用)タイプを使用する
Last updated
Last updated
COM タイプとは -
C# で COM タイプを使用する標準的な方法は、主要な相互運用機能アセンブリ(基本的には API の大きなコレクション)を参照してパッケージに配布することです。
これに代わる方法は、管理対象アセンブリに PIA (プライマリ相互運用機能アセンブリ)を埋め込むことです。これには基本的に、管理対象アセンブリで実際に使用されるタイプとメンバーのみが含まれます。ただし、このアプローチには、タイプの等価性など、他にもいくつかの問題があります。
こちらの投稿では、この問題をかなり詳しく説明しています。
Dynamo は、同等のタイプを .NET (dotnet)ランタイムに委任します。たとえば、名前と名前空間が同じで、異なるアセンブリからの 2 つのタイプは同等とは見なされず、競合するアセンブリを読み込むときに Dynamo でエラーが発生します。相互運用タイプについて、Dynamo は を使用して、相互運用タイプが同等かどうかを確認します。
一部のパッケージは、埋め込まれた相互運用タイプ(例: CivilConnection)を使用して既に作成されています。同等とは見なされない相互運用機能アセンブリが埋め込まれた 2 つのパッケージ(で定義されている異なるバージョン)をロードすると、package load error
が発生します。このため、パッケージ作成者は、相互運用タイプに動的バインディング(遅延バインディング)を使用することをお勧めします(ソリューションについてはでも説明されています)。
この例を参考にしてください。