我想我的構造函數使用參數調用另一個構造函數,但是當我這樣做(MyProperty)時,MyProperty必須是靜態的。問題是在這個靜態屬性的getter中,我必須從structuremap Container中獲取ISettingReader的一個實例,並且因爲它是靜態的,所以我的容器只包含兩個元素而不是超過50個元素,然後它找不到實例。 (ISettingReader上的pluginFamily錯誤)構造函數鏈和靜態屬性參數和結構映射
這是我的代碼。
private static Func<LinqDataContext> _contextFactory;
public static Func<LinqDataContext> DefaultContextFactory
{
get
{
var settingReader = ObjectFactory.GetInstance<ISettingReader>(); // I get an error saying it can't find ISettingReader()
var connectionString = settingReader.GetSetting("MyProject.ConnectionString");
_contextFactory =() => new LinqDataContext(connectionString);
return _contextFactory;
}
}
public MyProjectViewModelService() : this(DefaultContextFactory)
{
}
public MyProjectViewModelService(Func<LinqDataContext> contextFactory)
{
_contextFactory = contextFactory;
}
我想如果我能擺脫我的靜態關鍵字,它應該工作。我確認我在ProgramMap容器中初始化了我的ISettingReader,當我在Program.exe中啓動我的應用程序時
那麼我該怎麼做? 謝謝!
約翰
PS:有類似的問題,我的計算器發現,但他不使用structureMap: Constructor chaining with intermediate variables
您是絕對正確的。我以爲我知道結構圖很好,但實際上不是-_-。但是,無論如何感謝你,你是C#開發的神。 – Gui 2011-06-06 11:13:17