0

このクラスのインスタンスを逆シリアル化しようとしています

[Serializable]
public class InstalledMeter : ISerializable 
{
    public string Description { get; set; }

    public double Latitude { get; set; }
    public double Longitude { get; set; }

    public void GetObjectData(SerializationInfo info, StreamingContext context)
    {
        info.AddValue("Description", Description);
        info.AddValue("Latitude", Latitude);
        info.AddValue("Longitude", Longitude);
    }
}

インスタンス:

new InstalledMeter {Description = "Something", Latitude = 0.0, Longitude = 0.0};

私のシリアル化方法

public static class SerializeString
{
    public static string SerializeObject<T>(this T toSerialize)
    {
        var xmlSerializer = new XmlSerializer(toSerialize.GetType());
        var textWriter = new StringWriter();

        xmlSerializer.Serialize(textWriter, toSerialize);
        return textWriter.ToString();
    }

    public static T XmlDeserializeFromString<T>(this string objectData)
    {
        return (T)XmlDeserializeFromString(objectData, typeof(T));
    }

    public static object XmlDeserializeFromString(string objectData, Type type)
    {
        var serializer = new XmlSerializer(type);
        object result;

        using (TextReader reader = new StringReader(objectData))
        {
            result = serializer.Deserialize(reader);
        }

        return result;
    }
}

しかし、オブジェクトをシリアル化すると、これらの値が含まれます ここに画像の説明を入力

4

1 に答える 1

1

(あなたの前の質問に基づいて答えを推測する - mvvmcross viewmodels にパラメーターを渡すエラー

MvvmCross でこれを行っている場合は、この xml の問題を完全に回避し、JSON シリアライゼーションのみを使用します。

  var jsonText = JSONConvert.SerializeObject(installedMeter);

  var installedMeter = JSONConvert.DeserializeObject<InstalledMeter>(jsonText);

ちょうど使用:

    public class InstalledMeter
    {
        public string Description { get; set; }
        public double Latitude { get; set; }
        public double Longitude { get; set; }
    }
于 2012-11-06T10:19:38.977 に答える