序列化验证属性列表时出错
An error when serializing a list of validationattribute
我正在尝试序列化 (ValidationAttribute) 列表,如下所示:
RequiredAttribute tRequired = new RequiredAttribute();
List<ValidationAttribute> ValidationList = new List<ValidationAttribute>();
ValidationList.Add(tRequired);
XmlSerializer tXMLSerializer = new XmlSerializer(typeof(List<ValidationAttribute>));
MemoryStream tMemStream = new MemoryStream();
StreamWriter tStreamWriter = new StreamWriter(tMemStream);
tXMLSerializer.Serialize(tStreamWriter, ValidationList);
(Serialize)函数执行时,会抛出如下异常:
The type System.ComponentModel.DataAnnotations.RequiredAttribute was not expected. Use the XmlInclude or SoapInclude attribute to specify types that are not known statically
我想通了。我需要将 (RequiredAttribute) 的类型传递给 XMLSerializer:
RequiredAttribute tRequired = new RequiredAttribute();
List<ValidationAttribute> ValidationList = new List<ValidationAttribute>();
ValidationList.Add(tRequired);
Type[] tExtraTypes = new Type[] { typeof(RequiredAttribute) };
XmlSerializer tXMLSerializer = new XmlSerializer(typeof(List<ValidationAttribute>),tExtraTypes );
我正在尝试序列化 (ValidationAttribute) 列表,如下所示:
RequiredAttribute tRequired = new RequiredAttribute();
List<ValidationAttribute> ValidationList = new List<ValidationAttribute>();
ValidationList.Add(tRequired);
XmlSerializer tXMLSerializer = new XmlSerializer(typeof(List<ValidationAttribute>));
MemoryStream tMemStream = new MemoryStream();
StreamWriter tStreamWriter = new StreamWriter(tMemStream);
tXMLSerializer.Serialize(tStreamWriter, ValidationList);
(Serialize)函数执行时,会抛出如下异常:
The type System.ComponentModel.DataAnnotations.RequiredAttribute was not expected. Use the XmlInclude or SoapInclude attribute to specify types that are not known statically
我想通了。我需要将 (RequiredAttribute) 的类型传递给 XMLSerializer:
RequiredAttribute tRequired = new RequiredAttribute();
List<ValidationAttribute> ValidationList = new List<ValidationAttribute>();
ValidationList.Add(tRequired);
Type[] tExtraTypes = new Type[] { typeof(RequiredAttribute) };
XmlSerializer tXMLSerializer = new XmlSerializer(typeof(List<ValidationAttribute>),tExtraTypes );