有没有办法改变 asp.net 在从 .asmx 文件生成的 WSDL 中生成元素的方式?具体来说,它似乎标记了所有元素 minoccurs="0"并且有一些元素我想成为 minoccurs="1"(又名必填字段)。
其中一个是 Web 服务的参数(例如 foo(arg1, arg2),我希望在 WSDL 中将 arg2 生成为 minoccurs="1"),另一个是与 arg1 对应的类中的特定字段。我是否必须放弃自动 WSDL 生成并采取“契约(Contract)优先”的方法?
最佳答案
我认为 XmlElement(IsNullable = true)
属性可以完成这项工作:
using System.Xml.Serialization;
[WebMethod]
public string MyService([XmlElement(IsNullable = true)] string arg)
{
return "1";
}
编辑 [VB 版]
Imports System.Xml.Serialization
Public Function MyService(<XmlElement(IsNullable:=True)> ByVal arg As String) As String
Return ("1")
End Function
关于asp.net - 更改 ASP.NET 为 ASP.NET Web 服务生成的 WSDL,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/188687/