我正在使用xsd.exe在我们的项目中创建C#类。
此方法运行良好,但似乎忽略了以下限制:
<xs:element name="TestClass">
<xs:complexType>
<xs:sequence>
<xs:element name="testString">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="6"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
因此,我尝试将属性手动添加到生成的类中的这些属性中:
[System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.81.0")]
[System.SerializableAttribute()]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true, Namespace =
"http://www.mynamespace.org")]
[System.Xml.Serialization.XmlRootAttribute(Namespace =
"http://www.mynamespace.org", IsNullable = false)]
public partial class TestClass
{
[System.Xml.Serialization.XmlElementAttribute(DataType = "NMTOKEN")]
[Required, StringLength(6, MinimumLength = 6, ErrorMessage =
"StringLength test")]
public string testString { get; set; }
}
问题是XmlSerializer在序列化/反序列化时会忽略这些属性。不需要,也不在乎字符串的长度。
xsd.exe生成了XmlElementAttribute。
我添加了Required和StringLength属性。
我应该如何实现我的目标?