2
所以我有这样的情况:A
需要调用B
服务,A
只知道B
地址,只有在运行时。但两者都提前有相同的服务合同。wcf:动态调用返回复合类型的服务
到目前为止,我有这个(在A
):
using (ChannelFactory<IService1> scf = new ChannelFactory<IService1>(new BasicHttpBinding(), "B's adress"))
{
var channel = scf.CreateChannel();
channel.GetData(5);
...
}
[ServiceContract]
public interface IService1
{
[OperationContract]
string GetData(int value);
[OperationContract]
CompositeType GetDataUsingDataContract(CompositeType composite);
}
[DataContract]
public class CompositeType
{
[DataMember]
public bool BoolValue
...
[DataMember]
public string StringValue
...
}
B
公开相同的服务合同。
现在的问题。与GetData
一切工作正常,但与GetDataUsingDataContract
需要并返回复合类型 - 看起来B
接收对象与默认值,而不是发送。什么可能是错的?
是'CompositeType'在组件C中定义所使用A和B两者?如果不是,它在哪里定义? – 2012-03-15 13:13:31
@Daniel Hilgarth它在A和B都以相同的方式定义。嗯,我会试试看。 – ren 2012-03-15 13:19:24
@Daniel Hilgarth是的,它的工作!谢谢。 – ren 2012-03-15 14:33:53