1

Jsonでこれを行うことができます:

 [JsonProperty("type")]
 [JsonConverter(typeof(MyTpeConverter))]
 public BoxType myType { get; set; }


 .....
 public class BoxTypeEnumConverter : JsonConverter
 {
    public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
    {
     ....
    }
 }

これは、XML を使用する場合にも可能ですか?

[XmlElement("isFolder")]
[XmlConvert()] // ???
public string IsFolder { get; set; }

私のXmlファイルには例えば

....
<isFolder>t</isFolder>
....

その「t」を「true」にしたい。

4

1 に答える 1

5

2 つの方法があります: 簡単な方法: :)

[XmlElement("isFolder")]
public string IsFolderStr { get; set; }
[XmlIgnore]
public bool IsFolder { get{ ... conversion logic from IsFolderStr is here... }}

2 番目の方法は、カスタム変換を処理するクラスを作成することです。

public class BoolHolder : IXmlSerializable
{
    public bool Value { get; set }

    public System.Xml.Schema.XmlSchema GetSchema() {
        return null;
    }

    public void ReadXml(System.Xml.XmlReader reader) {
        string str = reader.ReadString();
        reader.ReadEndElement();

        switch (str) {
            case "t":
                this.Value = true;
    ...
    }
}

プロパティの定義を BoolHolder に置き換えます。

public BoolHolder IsFolder {get;set;}

于 2013-10-15T12:09:28.173 に答える