2017-08-11 3 views
1

StorageFile(直列化できないクラス)を属性として直列化する必要があります。私はその属性を[IgnoreDataMember]とタグ付けしましたが、XmlSerializerはそれをシリアル化するtryngを保持していますが、期待されていないものです。UWP(C#)のDataMemberを無視できません

問題を明確にするスニペット:

[DataContract] 
public class Attachment 
{ 
    [DataMember] 
    public string FileName { get; set; } 

    [IgnoreDataMember] 
    public StorageFile File { get; set; } 

    [DataMember] 
    public Boolean UserCreatedContent { get; set; } 
} 

答えて

0

XmlIgnoreAttribute属性を使用してみてください、あなたがXmlSerializerDataContractSerializerを少し混ぜたように見えます。 DataContractAttributeDataContractSerializerを制御する属性ですが、XmlSerializerを使用しています。これは、シリアライザがthis articleと同じではないため、属性が無意味であることを意味します。

XmlSerializerを使用してシリアル化を制御するには、the attributes that control XML serializationを参照する必要があります。これは、多くの属性を必要としないことを意味します。XmlSerializerを使用してシリアル化中にプロパティを無視するために、単にXmlIgnoreを使用するだけです。

public class Attachment 
{ 
    public string FileName { get; set; } 
    [XmlIgnore] 
    public StorageFile File { get; set; } 
    public Boolean UserCreatedContent { get; set; } 
} 
+0

非常に説明的な答えをありがとう!上記のすべての答えは問題を解決しましたが、これも理由を答えました。 –

1

ではなく

+0

うんを、使用している場合XmlIgnore属性を使用し、感謝! –

1

あなたは私の愚かなXmlSerializer

public class Attachment 
{ 
    public string FileName { get; set; } 

    [XmlIgnore] 
    public StorageFile File { get; set; } 

    public Boolean UserCreatedContent { get; set; } 
} 
+0

あなたの答えをありがとう!それは問題を解決した –

関連する問題