我有一个 WSDL 文件,它定义了我必须在 WCF 中实现的服务。我读到过我可以使用 WSDL 文件中的 svcutil 生成代理,然后我可以使用生成的接口(interface)来实现服务。
不幸的是,我似乎无法找到一种方法让接口(interface)包含正确的属性来公开契约。
所有操作都有“OperationContractAttribute”属性,但似乎要公开服务,我需要每个操作都有“OperationContract”。 “ServiceContractAttribute”和“ServiceContract”也是如此,我想是 DataContract,但我还没有走那么远。
我可以手动进行这些更改,但我更喜欢一种可以轻松使用现有代码的技术,或者可以为我的使用生成更好的代码。有什么方法可以做到这一点吗?
谢谢。
编辑:
使用的命令:
svcutil ObjectManagerService.wsdl /n:*,Sample /o:ObjectManagerServiceProxy.cs /nologo
代码示例:
public interface ObjectManagerSyncPortType
{
// CODEGEN: Generating message contract since the operation createObject is neither RPC nor document wrapped.
[System.ServiceModel.OperationContractAttribute(Action="http://www.sample.com/createObject", ReplyAction="*")]
[System.ServiceModel.XmlSerializerFormatAttribute()]
Sample.createObjectResponse1 createObject(Sample.createObjectRequest1 request);
// ...
}
据我所知/所见,WSDL 文件是完全独立的,不需要额外的 XSD 文件。
最佳答案
结果是 ReplyAction="*"
是 culprit .感谢您的帮助。
关于wcf - svcutil、WSDL 和生成的接口(interface)不足以实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2555941/