サービス コンポーネントのプログラミング ガイドライン

.NET Framework では COM で導入されたプログラミング機能の多くが拡張され、共通言語ランタイムによって、相互運用の境界を越えて簡単にアクセスできます。ただし、COM クライアントは COM のプログラミング モデルの制限に従う必要があります。COM プログラミング モデルの制限が、.NET Framework コンポーネントで利用できる拡張機能の使用方法と時期に影響する場合があります。したがって、.NET Framework コンポーネントを作成する前に、そのコンポーネントの使用者を確認する必要があります。呼び出し元が COM ベースかどうかをあらかじめ確認しておくと、その後の作業時間を大幅に節約できます。

呼び出し元の種類に基づいて .NET Framework のコンポーネントを記述する場合は、次の表に示す考慮事項をガイドラインとして使用してください。

予測される呼び出し元 考慮事項
.NET クライアント限定 特別な考慮事項はありません。
.NET Framework クライアントおよび COM クライアント 下記の COM クライアント限定の場合の考慮事項と同じです。
COM クライアント限定 パラメータ化されたコンストラクタを使用しないでください。

静的メソッドを使用しないでください。

マネージ コードにイベント ソース インターフェイスを定義してください。

ユーザー定義の例外に HRESULT を含めてください。

GUID を必要とする型に対しては GUID を指定してください。

継承の相違があることを念頭に置いてください。