在我正在处理的项目中,我需要调用 webservices (asmx)。我想使用 wcf 和 channelfactory 调用它们(不添加服务参考)。
有些可能有一个接口(合同),很多没有。
有没有一个端到端的例子怎么做?
var service=ChannelFactory<?>... How do I get the webserviceContract.
当然,这必须是能够调用 Web 服务(asmx)的常见场景
谢谢你的时间
在我正在处理的项目中,我需要调用 webservices (asmx)。我想使用 wcf 和 channelfactory 调用它们(不添加服务参考)。
有些可能有一个接口(合同),很多没有。
有没有一个端到端的例子怎么做?
var service=ChannelFactory<?>... How do I get the webserviceContract.
当然,这必须是能够调用 Web 服务(asmx)的常见场景
谢谢你的时间
为了扩展我的评论,您应该能够创建一个接口,该接口的方法与 asmx 服务中的 Web 服务方法相匹配。例如:
网络服务方法
string GetMessage()
void SendMessage(string message)
int AddNumbers(int x, int y)
服务合同
[ServiceContract]
public interface IServiceName
{
[OperationContract]
string GetMessage();
[OperationContract]
void SendMessage(string message);
[OperationContract]
int AddNumbers(int x, int y)
}
通道工厂
ChannelFactory<IServiceName> serviceFactory =
new ChannelFactory<IServiceName>(new BasicHttpBinding(),
"http://www.services.com/Service.asmx");
不是 100% 肯定这会奏效,但很容易尝试。此外,您可能希望在服务合同 ( [ServiceContract(Namespace = "somenamespace")]
) 上设置命名空间以匹配旧版 asmx 服务,否则可能无法处理消息。