我正在构建一个ASP.NET Web服务。
我的代码定义如下,但我无法弄清楚如何指定wsdl来指定FirstName和LastName属性的minOccurs。我希望那些是必需的,不能是空的。有可能吗?
[WebMethod()]
public void TestMethod(TestClass Test)
{
...
}
[Serializable]
public class TestClass
{
public string FirstName { get; set; }
public string LastName { get; set; }
}
答案 0 :(得分:2)
事实证明,WSDL不用于验证传入的XML。无论你是否可以指定minOccurs都没关系 - 它不会用于验证输入。
答案 1 :(得分:0)
字符串是引用类型,因此根据定义可以为空。如果你的属性是一个整数minoccurs就是1。
你可以通过put强制Serializer不允许它为null。
[XmlElement(“name”,IsNullable = false)]
在酒店上方。
编辑:我的意思是引用类型而不是值类型。 Thnx Joren!
答案 2 :(得分:0)
我已在另一个有相同问题的帖子上发布详细答案:How to make a dotnet webservice set minOccurs=“1” on a string value。
但字符串的答案是否。
在没有 nullable = true 的情况下, minOccurs = 1 的唯一方法是声明一个无默认值的属性(字符串具有默认值) String.Empty )和没有属性来检查是否指定了值(使相同的属性名称附加了“Specified”字)。
如果John Saunders的回答是真的,你仍然有限。
事实证明,WSDL不用于验证传入的XML。无论你是否可以指定minOccurs都没关系 - 它不会用于验证输入。