对不起,我会尽力更好地解释问题。 我已创建了我的log4net的实例的包装,我实例化这个记录器与下面的构造:设计模式:具有设置功能的单身人士
public MyLogger(string _dbName)
{
dbName = _dbName;
logger = LoggerConfigurator.AddNamedLogger(dbName);
}
现在的问题是:这个构造函数是在两个不同的类实例化,所以一些消息日志打印两次。 我只需要在以前的实例不存在的情况下创建一个新的实例,否则返回实例。一种Singleton模式。问题是Singleton模式不接受参数,所以我没有办法通过_dbName
。我应该如何处理这种最佳做法?
为什么不使用Singleton x = Singleton.GetInstance(params object [] parameters);或创建初始化单个参数设置的初始化方法? x.Init(params object []参数); –
甚至更好 - 使用IoC容器!在那里你可以定义,只有一个类型为''的实例应该用于所有对它有依赖关系的类。看看:http://msdn.microsoft.com/en-us/library/ff648211.aspx –
ElGauchooo