我有一个 WSDL 文件,它定义了我必须在 WCF 中实现的服务。我读到我可以使用 WSDL 文件中的 svcutil 生成代理,然后我可以使用生成的接口来实现服务。
不幸的是,我似乎无法找到一种方法让接口包含正确的属性来公开合同。
所有操作都有“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 文件。