我目前正在尝试创建一个调用 WCF SOAP 服务的 REST 代理,我一直在尝试建立一个 channel 来发送消息。我知道我需要使用 ChannelFactory,但我没有该服务的接口(interface)。我可以传递默认值吗?有没有其他的方式来打包消息?
当我说消息时,我指的是来自 ServiceModels.Channels.Message 的消息。
我对此很陌生,所以任何帮助将不胜感激。
最佳答案
您可以 generate a WCF client通过以下两种方式之一从 WSDL 服务契约(Contract)中获取:
- 使用Add Service Reference Visual Studio 中的对话框
- 使用svcutil命令行工具
任何一种方法都会生成与服务契约公开的类型相对应的 .NET 类以及 WCF client proxy class ,您可以使用它来调用服务操作:
try
{
var client = new MyServiceClient();
client.DoSomething();
client.Close();
}
catch
{
if (client != null)
{
client.Abort();
}
}
如果您更喜欢使用较低级别的 ChannelFactory API , 你应该使用生成的 IClientChannel界面改为:
try
{
var factory = new ChannelFactory<MyServiceChannel>();
var client = factory.CreateChannel();
client.DoSomething();
client.Close();
}
catch
{
if (client != null)
{
client.Abort();
}
}
关于c# - 没有接口(interface)的 ChannelFactory<T>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9367139/