Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/299.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何强制C#web服务对象属性中的最大字符串长度?_C#_Web Services_Soap_.net 2.0_Xml Serialization - Fatal编程技术网

如何强制C#web服务对象属性中的最大字符串长度?

如何强制C#web服务对象属性中的最大字符串长度?,c#,web-services,soap,.net-2.0,xml-serialization,C#,Web Services,Soap,.net 2.0,Xml Serialization,例如,在这个类中,我想强制限制名字/姓氏允许的字符数 public class Person { public string FirstName { get; set; } public string LastName { get; set; } } 是否有办法强制对名字或姓氏进行字符串限制,因此当客户端在将其发送给我之前序列化时,,如果它违反了长度限制,它将抛出一个错误 更新:这需要在WSDL本身中识别和强制执行,而不是在我接收到无效数据之后。从自动属性转换属性并自己验证

例如,在这个类中,我想强制限制名字/姓氏允许的字符数

public class Person
{
     public string FirstName { get; set; }
     public string LastName { get; set; }
}
是否有办法强制对名字或姓氏进行字符串限制,因此当客户端在将其发送给我之前序列化时,,如果它违反了长度限制,它将抛出一个错误


更新:这需要在WSDL本身中识别和强制执行,而不是在我接收到无效数据之后。

从自动属性转换属性并自己验证,然后您可以抛出参数异常或提交之前必须处理的类似事件


注意:如果.NET以外的语言将调用,您很可能也希望在服务端验证它。或者在minimun测试中查看它在另一种语言中的工作方式。

您可以使用以下方法应用XML模式验证(例如maxLength方面):

[ValidationSchema(“person.xsd”)]
公共类人物{/*…*/}

坏死时间。。。不过值得一提

using System.ComponentModel.DataAnnotations;
public class Person
{
     [StringLength(255, ErrorMessage = "Error")]
     public string FirstName { get; set; }
     [StringLength(255, ErrorMessage = "Error")]
     public string LastName { get; set; }
}
using System.ComponentModel.DataAnnotations;
public class Person
{
     [StringLength(255, ErrorMessage = "Error")]
     public string FirstName { get; set; }
     [StringLength(255, ErrorMessage = "Error")]
     public string LastName { get; set; }
}