WCF 服务中的 WCF 服务。我能对 DataContract 做些什么?
WCF service inside a WCF service. What can I do about the DataContracts?
我正在制作一个 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);
}
Should I request the data ...
这是选项之一,比较简单。另一种选择是在您的代理服务 A.
中公开两者之间的不同合同和 cincert
您选择哪个选项取决于您和您的客户要求。
How can I expose the type to the caller?
通过在您的方法签名中重复使用完全相同的类型。客户端如何在技术上使用该类型取决于客户端。基本上就三个选项:
- 客户端依赖 WSDL 元数据并在 his/her 端生成 class 代码
- 客户端获取包含类型
的程序集
- 客户端获取类型的源码
我正在制作一个 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);
}
Should I request the data ...
这是选项之一,比较简单。另一种选择是在您的代理服务 A.
中公开两者之间的不同合同和 cincert您选择哪个选项取决于您和您的客户要求。
How can I expose the type to the caller?
通过在您的方法签名中重复使用完全相同的类型。客户端如何在技术上使用该类型取决于客户端。基本上就三个选项:
- 客户端依赖 WSDL 元数据并在 his/her 端生成 class 代码
- 客户端获取包含类型 的程序集
- 客户端获取类型的源码