我在我的.NET CF应用程序中有配置实体,我想使用单例。配置可以更改,并且必须保存/恢复以供下次启动应用程序时使用。我想使用xml序列化/反序列化,它还提供了通过xml文件更改配置的可能性。问题是如何保存和恢复单例?反序列化创建了一个单例类的新实例,但这意味着目前它将是单例类的两个实例。
我找到了一个使用ISerializable接口的解决方案,但它似乎不适用于紧凑框架http://msdn.microsoft.com/en-us/library/system.runtime.serialization.iserializable%28v=VS.90%29.aspx
有没有办法获得与.NET CF相同的行为?
发布于 2011-12-19 22:43:50
您的单例很可能在其模式中使用私有构造函数。所以你会这样做:
public class MySingleton
{
private static MySingleton m_instance;
private MySingleton() { }
public static MySingleton Instance
{
get
{
if(m_instance == null)
{
// hydrate m_instance from serialized version
}
return m_instance;
}
}
}或者这样:
public class MySingleton
{
private static MySingleton m_instance;
private MySingleton()
{
// load data from config file
}
public static MySingleton Instance
{
get
{
if(m_instance == null)
{
m_instance = new MySingleton();
}
return m_instance;
}
}
}https://stackoverflow.com/questions/8561777
复制相似问题