<comContract>

COM+ 統合サービス コントラクトを指定します。

configuration
  system.serviceModel
    <comContracts>
      <comContract>

構文

<comContracts>
  <comContract contract="String"
               namespace="String"
               name="String"
               requireSession="Boolean">
    <exposedMethods>
      <exposedMethod name="String" />
    </exposedMethods>
    <userDefinedTypes>
      <userDefinedType name="String"
                       typeLibID="String"
                       typeLibVersion="String"
                       typeDefID="String">
      </userDefinedType>
    </userDefinedTypes>
    <persistableTypes>
      <persistableType id="String"
                       name="String">
      </persistableType>
    </persistableTypes>
  </comContract>
</comContracts>

属性および要素

以降のセクションでは、属性、子要素、および親要素について説明します。

属性

属性 説明
コントラクト (contract) コントラクトの種類を含む文字列。
name コントラクト名を含む文字列。
namespace コントラクトの名前空間を含む文字列。
requiresSession コントラクトをセッションの多いバインディングでのみ使用できるかどうかを指定するブール値。 サービスが初期化される場合、統合ランタイムは、この設定が、使用されるバインディングの種類と一貫していることを保証します。 コントラクト内の 1 つ以上のバインディングが競合する場合は、例外が生成されます。 このプロパティが false で、一方向のチャネルを使用し、いずれかの [out] パラメーターが存在する場合は、例外も発生します。

子要素

要素 説明
persistableTypes すべての永続型。
userDefinedTypes サービス コントラクトに含まれるユーザー定義型 (UDT) のコレクション。
exposedMethods COM+ コンポーネントのインターフェイスが Web サービスとして公開されるときに公開される COM+ メソッドのコレクション。

親要素

要素 説明
comContracts comContract 要素のコレクションを含みます。

解説

COM+ 統合サービス コントラクトは、現在 http://tempuri.org 名前空間に制限されており、コントラクト名はサポートする COM インターフェイスから派生します。 ただし、構成ファイルの comContracts セクションと comContract 要素を使用して代替を指定することができます。 たとえば、次の構成を使用して、名前空間、コントラクト名、組み込まれるユーザー定義型、およびサービス コントラクトのその他の設定を指定できます。

<comContracts>
  <comContract contract="{5163B1E7-F0CF-4B6A-9A02-4AB654F34284}"
               namespace="http://tempuri.org/5163B1E7-F0CF-4B6A-9A02-4AB654F34284"
               name="_Broker"
               requireSession="true">
    <exposedMethods>
      <exposedMethod name="BuyStock" />
      <exposedMethod name="SellStock" />
      <exposedMethod name="ExecuteTransaction" />
    </exposedMethods>
  </comContract>
</comContracts>

サービスが初期化される場合、指定した名前空間およびコントラクト名が、生成されるサービスの説明に適用されます。

関連項目