我有以下方法:
private int? myIntField
[System.Xml.Serialization.XmlElementAttribute(Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
public int? IntField{
get {
return this.myIntField;
}
set {
this.myIntField= value;
}
}
现在,我正在从post请求中反序列化xml,如果由于某种原因我收到了一个字符串,例如“这里是int字段:55444”,而不是55444,则我得到的响应错误是:输入字符串格式不正确。
这并不是非常具体的错误提示,特别是考虑到我需要验证多个int字段。
最初,我的计划是这样的:
private string myIntField
[System.Xml.Serialization.XmlElementAttribute(Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
public int? IntField{
get {
return this.myIntField.CheckValue();
}
set {
this.myIntField= value;
}
}
在这里,CheckValue执行了一个try-parse
操作,尝试把值转换成Int32类型。如果转换失败,则返回null并将错误添加到列表中。但是,我似乎无法为生成的类设置好这个问题。
是否有一种方法可以在获取字符串而不是int、DateTime等时抛出特定的错误呢?