2009-07-31 3 views
0

Microsoft.Office.Interop.Visioライブラリでは、各エンティティ(Shapeなど)はクラス(ShapeClass)およびインターフェイスShapeとして記述されています。あなたが持っている各要素についてそうOffice Interop APIにインターフェイス/クラス(IFoo、FooClass)パターンが存在するのはなぜですか?

interface Shape { ... } 
class ShapeClass : Shape { ... } 

interface Page { ... } 
class PageClass : Page { ... } 

... 

それはこのように設計されたのはなぜ?それはどのようなのでインタフェースはIDL

wiki COM

+0

これは少しわかりやすくなります:http://stackoverflow.com/questions/1051464/excel-interop-worksheet-or-worksheet/1051546#1051546 –

答えて

1

を試してみてください、オフィスで作業しやすいライブラリようにするには、これは実際にはCOMベースのAPIであることを示唆しています。

COMは、開発者向けの言語中立コンポーネントモデルのMicrosoftの最初の試みであり、その中心的な教義の1つはインターフェイスベースの設計でした。

したがって、ShapeClassは「co-class」と呼ばれ、Shapeインターフェイスの名前付き実装です。

Co-Classは、(Win32レジストリで)グローバルに登録され、フレンドリ名( "prog-ID")または "CLSID"と呼ばれるGUIDに基づいて作成できました。

0

は、私は、彼らがすべてのCOMオブジェクトとして実装されており、インタフェースはクラスの実装のための契約を定義することがあるので、それがなると思いますCOMが動作します。

COMは、コンポーネントが実装するインターフェイスを定義します。 COMのほとんどすべてがインターフェイスに基づいています。インタフェースは、それらを実装するクラスよりも重要です。

0

で実装されます -

0

これはCOMの仕組みに基づいています。

良い.Netデザインの例をお探しの場合は、NOTをOffice interop libraries(PIA)に表示してください。彼らはCOM同等物の周りに直接ラッパーであり、C#で作業するのに適度にひどいです。

名前空間の「相互運用」の部分VSTO Power Tools

+0

ライブラリチップのおかげで – geejay

関連する問題