如何根据需要指定OperationContract的参数
我想知道如何根据需要在 WCF 中指定 OperationContract 方法的参数,以便生成的 xsd 包含 minOccurs="1" 而不是 minOccurs="0"。
示例:
[ServiceContract(Namespace = "http://myUrl.com")]
public interface IMyWebService
{
[OperationContract]
string DoSomething(string param1, string param2, string param3);
}
生成此 xsd:
<xs:element name="DoSomething">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="param1" nillable="true" type="xs:string" />
<xs:element minOccurs="0" name="param2" nillable="true" type="xs:string" />
<xs:element minOccurs="0" name="param3" nillable="true" type="xs:string" />
</xs:sequence>
</xs:complexType>
但我想在代码中定义 minOccurs="1" ,而无需在 xsd 文件中手动修复它。
I wonder how I can specify a parameter of an OperationContract method in WCF as required so that the generated xsd contains minOccurs="1" instead of minOccurs="0".
Example:
[ServiceContract(Namespace = "http://myUrl.com")]
public interface IMyWebService
{
[OperationContract]
string DoSomething(string param1, string param2, string param3);
}
generates this xsd:
<xs:element name="DoSomething">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="param1" nillable="true" type="xs:string" />
<xs:element minOccurs="0" name="param2" nillable="true" type="xs:string" />
<xs:element minOccurs="0" name="param3" nillable="true" type="xs:string" />
</xs:sequence>
</xs:complexType>
But I want to define minOccurs="1" within the code without the necessity to manually fix it in the xsd file.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您可能需要将参数包装在类中,然后可以使用
DataMember
属性并指定IsRequired=true
:You might need to wrap your parameters in a class, then you can use the
DataMember
attribute and specifyIsRequired=true
:这个实现对我来说很好:
http://thorarin.net/blog /post/2010/08/08/Controlling-WSDL-minOccurs-with-WCF.aspx
This implementation is nice to me:
http://thorarin.net/blog/post/2010/08/08/Controlling-WSDL-minOccurs-with-WCF.aspx