質問

次のように私は2件のサービス契約を宣言しています:

[ServiceContract]
public interface IContract1
{
    [OperationContract]
    double Add(int ip);
}

[ServiceContract]
public interface IContract2
{
    [OperationContract]
    double Add(double ip);
}

私は、これらの2件の契約を実装するクラスを持っています。私は両方の契約のために2つのエンドポイントを作成しました。しかし、私は、クライアントコードからサービスにアクセスすることはできませんよ。 私はサービス参照を更新しようとすると、これは大きなエラーを表示します。

  

は、メタデータには、エンドポイントのリスニングはありませんでした....解決できないエラーが含まれているで...、など。

私はあなたが同じ名前を持つ2つのOperationContractsを持つことはできませんが、同じ名前で異なるシグネチャを持つ別のサービス契約での2件の動作契約を持つことが可能であることを知っていますか?

役に立ちましたか?

解決

1つのサービスの実装の両方の契約なら、あなたはあなたの操作契約に一意の名前を与える必要があります。

[ServiceContract]
public interface IContract1
{
    [OperationContract(Name="AddInt")]
    double Add(int ip);
}

[ServiceContract]
public interface IContract2
{
    [OperationContract(Name="AddDouble")]
    double Add(double ip);
}

他のヒント

次を使用することができます。

[ServiceContract]
public interface IContract1
{
    [OperationContract(Name = "Add1")]
    double Add(int ip);
}

[ServiceContract]
public interface IContract2
{
    [OperationContract(Name = "Add2")]
    double Add(double ip);
}
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top