對不起,我會盡力更好地解釋問題。 我已創建了我的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