为ASP.NET Web服务更改ASP.NET生成的WSDL

use*_*243 3 .net xml asp.net wsdl web-services

有没有办法改变asp.net在.asmx文件生成的WSDL中生成元素的方式?具体来说,它似乎标记所有元素minoccurs ="0"并且有一些元素我想要minoccurs ="1"(又名必填字段).

其中一个是Web服务的参数(例如foo(arg1,arg2),其中我希望在WSDL中生成arg2为minoccurs ="1")另一个是类中与arg1对应的特定字段.我是否必须放弃自动生成WSDL并采取"合同优先"的方法?

Pan*_*nos 7

我认为该XmlElement(IsNullable = true)属性将完成这项工作:

using System.Xml.Serialization;

[WebMethod]
public string MyService([XmlElement(IsNullable = true)] string arg)
{
  return "1";
}
Run Code Online (Sandbox Code Playgroud)

编辑[VB版]

Imports System.Xml.Serialization

Public Function MyService(<XmlElement(IsNullable:=True)> ByVal arg As String) As String
  Return ("1")
End Function
Run Code Online (Sandbox Code Playgroud)