WCF服务中的WCF服务。我可以对DataContracts做些什么?

时间:2015-07-19 17:48:02

标签: c# .net web-services wcf

我正在制作一个仅存在的WCF服务,以帮助调用者到达另一个WCF服务。换句话说,我的服务接收数据并将(相同的数据)发送到其他服务。我将我的服务称为服务A,将其他服务称为服务B.

[ServiceContract]
public interface ServiceB
{
    [OperationContract]
    string SendComplexData(ComplexData data);
}

[DataContract]
class ComplexData { ... }

在服务B中,我调用一个复杂类型作为参数的方法,由DataContract向我公开。问题是,我应该在我的服务A中请求相同B类型的数据吗?并且,如果是,我如何将此现有类型公开给调用者?

[ServiceContract]
public Interface ServiceA
{
    [OperationContract]
    string SendComplexDataToServiceB(ComplexData data);
}

1 个答案:

答案 0 :(得分:1)

  

我应该要求数据......

这是其中一个选项,更容易。另一种选择是在代理服务A中公开不同的合同和cincert。

您选择哪个选项取决于您和您的客户要求。

  

如何将类型公开给调用者?

在方法的签名中重复使用相同的类型。从技术上讲,客户端使用的类型取决于客户端。基本上有三种选择:

  • 客户端依赖于WSDL元数据并在他/她身边生成类代码
  • 客户端获取包含类型
  • 的程序集
  • 客户端获取类型
  • 的源代码