我有一个类来创建对象上下文。要管理对象创建,我想使用单例模式。如何在C#中创建以下类对象创建模式为singleton?
public abstract class EFContextBase<TContext> : IDisposable where TContext : ObjectContext, new()
{
private TContext _dataContext;
protected virtual TContext DataContext
{
get
{
if ((object)this._dataContext == null)
this._dataContext = Activator.CreateInstance<TContext>();
return this._dataContext;
}
}
public EFContextBase()
{
this.DataContext.ContextOptions.LazyLoadingEnabled = true;
}
public void Dispose()
{
this.Dispose(true);
GC.SuppressFinalize((object)this);
}
private void Dispose(bool disposing)
{
if (!disposing || (object)this._dataContext == null)
return;
this._dataContext.Dispose();
this._dataContext = default(TContext);
}
}
答案 0 :(得分:1)
为什么要创建一个抽象类Singleton?制作了抽象类,由其他类继承。 Singleton是一种设计模式,用于避免静态方法并保持可能性,使您的类可实现(可能以后使用)。你应该考虑一下你的架构。
一般来说,你应该按照以下方式制作一个单例:
private static readonly <<YourClass>> singleton = new <<YourClass>>()
public <<YourClass>> Singleton
{
get { return singleton; }
}
答案 1 :(得分:0)
基于以下几种单例的经典实现:
答案 2 :(得分:0)
不要冒险,从最了解的人那里得到它:http://csharpindepth.com/articles/general/singleton.aspx