У меня есть класс для создания контекста объекта. Чтобы управлять созданием объекта, я хочу использовать одноэлементный шаблон. Как создать следующий шаблон создания объекта класса как singleton в C#?Как создать одноэлементный шаблон следующего класса
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);
}
}
Почему бы это быть иначе, чем любой другой одноточечного вы создать? –
Нет ответа, просто замечание: вы дали TContext ограничение new(), но вы используете Activator для создания экземпляра. –
EFContextBase должен иметь индикатор локального флага для удаленной практики, чтобы избежать множественного размещения. –