C
chris martin
I need to serialize a singelton in my system.
It is possible to serialize with BinaryFormatter or SoapFormatter using ISerializable
and a helper IObjectReference class. But, what I'm after is plain-jane XmlSerializer
support.
Is there any way this is possible?
Chris
---
using System;
using System.Runtime.Serialization;
[Serializable]
public sealed class TestSingleton : ISerializable
{
private TestSingleton()
{}
public static TestSingleton Instance
{
get { return Creator.instance; }
}
private class Creator
{
internal static readonly TestSingleton instance = new TestSingleton();
}
public void GetObjectData(SerializationInfo info, StreamingContext context)
{
info.SetType(typeof(SerializationHelper));
}
}
[Serializable]
public sealed class SerializationHelper : IObjectReference
{
public object GetRealObject(StreamingContext context)
{
return TestSingleton.Instance;
}
It is possible to serialize with BinaryFormatter or SoapFormatter using ISerializable
and a helper IObjectReference class. But, what I'm after is plain-jane XmlSerializer
support.
Is there any way this is possible?
Chris
---
using System;
using System.Runtime.Serialization;
[Serializable]
public sealed class TestSingleton : ISerializable
{
private TestSingleton()
{}
public static TestSingleton Instance
{
get { return Creator.instance; }
}
private class Creator
{
internal static readonly TestSingleton instance = new TestSingleton();
}
public void GetObjectData(SerializationInfo info, StreamingContext context)
{
info.SetType(typeof(SerializationHelper));
}
}
[Serializable]
public sealed class SerializationHelper : IObjectReference
{
public object GetRealObject(StreamingContext context)
{
return TestSingleton.Instance;
}