WCFのクラスと同じ名前を持つ別のサービス契約での2件の動作契約を実装します
-
26-09-2019 - |
質問
次のように私は2件のサービス契約を宣言しています:
[ServiceContract]
public interface IContract1
{
[OperationContract]
double Add(int ip);
}
[ServiceContract]
public interface IContract2
{
[OperationContract]
double Add(double ip);
}
私は、これらの2件の契約を実装するクラスを持っています。私は両方の契約のために2つのエンドポイントを作成しました。しかし、私は、クライアントコードからサービスにアクセスすることはできませんよ。 私はサービス参照を更新しようとすると、これは大きなエラーを表示します。
は、メタデータには、エンドポイントのリスニングはありませんでした....解決できないエラーが含まれているで...、など。
私はあなたが同じ名前を持つ2つのOperationContract
sを持つことはできませんが、同じ名前で異なるシグネチャを持つ別のサービス契約での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);
}
所属していません StackOverflow