【发布时间】:2013-11-15 11:22:42
【问题描述】:
我必须遵循以下代码:
BasicHttpBinding binding = new BasicHttpBinding ();
Uri baseAddress = new Uri ("URL.svc");
EndpointAddress endpointAddress = new EndpointAddress (baseAddress);
var myChannelFactory = new ChannelFactory<IMyInterface> (binding, endpointAddress);
IMyInterface client = null;
try
{
client = myChannelFactory.CreateChannel ();
var a = client.WsFunction ("XXXXXX");
((ICommunicationObject)client).Close ();
}
catch
{
if (client != null)
{
((ICommunicationObject)client).Abort ();
}
}
其中“IMyInterface”是我的WS实现的接口..例如:
[ServiceContract]
public interface IMyInterface
{
[OperationContract]
Result WsFunction1 (string param);
[OperationContract]
Result WsFunction2 (string param);
[OperationContract]
Result WsFunction3 (string param);
}
它返回如下内容:
[DataContract]
public class Result
{
string a = "";
string b = "";
[DataMember]
public string A
{
get { return a; }
set { a = value; }
}
[DataMember]
public string B
{
get { return b; }
set { b = value; }
}
}
当我运行此代码时,我可以到达 WS,但我永远无法填写 Result。
我做错了什么?
提前致谢!
【问题讨论】:
-
编译不了,小a是字符串类型,大A是bool类型。
-
是因为我改了名字...但实际上它编译并且WS接收到消息...但是我无法得到结果..
-
结果命名空间是可能的罪魁祸首之一,但我将从使用 http 调试器嗅探流量开始。
-
使用 Fiddler 我可以看到我可以完美地到达 WS!但是 Result 是有罪的......总是为空......
-
你能展示你的IMyInterface实现吗?
标签: c# wcf web-services service-model