私はVSTOライブラリを主に楽しみのために見てきましたが、と呼ばInspector
れるものがあることに気づきましたInspectorClass
。
違いは何ですか、なぜそこにあるのですか、そしてどのようにそれを使用することができますか?(注:これらのクラスを使用してコーディングする方法についての答えを探しているのではなく、特定のアーキテクチャパターンの背後にある理論的根拠を探しています。純粋に学術的な好奇心です。)
私はVSTOライブラリを主に楽しみのために見てきましたが、と呼ばInspector
れるものがあることに気づきましたInspectorClass
。
違いは何ですか、なぜそこにあるのですか、そしてどのようにそれを使用することができますか?(注:これらのクラスを使用してコーディングする方法についての答えを探しているのではなく、特定のアーキテクチャパターンの背後にある理論的根拠を探しています。純粋に学術的な好奇心です。)
InspectorClass
COMインターフェイスのコクラス(具体的な実装)です(たとえば、メタデータ+コードを持つCOMオブジェクトです)。純粋にインターフェイス定義として存在する場合でも、直接インスタンス化できます(実際にはバックグラウンドでインスタンス化されます)。Inspector
Inspector
InspectorClass
InspectorClass
VSTOが.NET4に相互運用機能タイプを埋め込むためのサポートを追加したため、具体的なクラスインスタンスを表すため、インスタンス化できます。使用法のサポートは*Class
使用されなくなり、下位互換性のために多かれ少なかれ存在します。
つまり、実行可能コードを含めることができるInspector
のではなく、使用する必要があるということです。MSDNブログInspectorClass
から:
...メタデータを埋め込むことは安全ですが、実行可能コードを含む可能性のあるものは何も埋め込みません(クラスタイプにはメタデータとコードが含まれますが、インターフェイスにはメタデータのみが含まれます)
InspectorClass
このステートメントから、実行可能コードを含むものを推測できますが、含まれInspector
ていません。これは純粋にインターフェイス(メタデータ)です。これは、相互運用機能タイプを埋め込むと、実装をサポートできないことを意味し*Class
ます。