我需要序列化一个包含StorageFile
(一个不能被序列化的类)作为属性的类。虽然我将该属性标记为[IgnoreDataMember]
,但XmlSerializer
会继续尝试将其序列化,但不期望的是。
澄清问题的摘要:
[DataContract]
public class Attachment
{
[DataMember]
public string FileName { get; set; }
[IgnoreDataMember]
public StorageFile File { get; set; }
[DataMember]
public Boolean UserCreatedContent { get; set; }
}
答案 0 :(得分:1)
尝试使用XmlIgnoreAttribute
属性
答案 1 :(得分:1)
如果您使用XmlIgnore
XmlSerializer
属性
public class Attachment
{
public string FileName { get; set; }
[XmlIgnore]
public StorageFile File { get; set; }
public Boolean UserCreatedContent { get; set; }
}
答案 2 :(得分:0)
您似乎将XmlSerializer
和DataContractSerializer
混合了一点。 DataContractAttribute是控制DataContractSerializer
的属性,但您使用的是XmlSerializer
。这意味着属性没有意义,因为序列化器与this article中的序列化器不同。
要使用XmlSerializer
控制序列化,您应该查看the attributes that control XML serialization。这意味着您不需要太多属性,只需使用XmlIgnore
一次性使用XmlSerializer
在序列化期间忽略该属性。
public class Attachment
{
public string FileName { get; set; }
[XmlIgnore]
public StorageFile File { get; set; }
public Boolean UserCreatedContent { get; set; }
}