2
我以前使用SM 2.5.3。我有一些代碼存儲的對象,看起來像這樣的命名實例:如何判斷命名實例是否在StructureMap 2.6的容器中?
ObjectFactory.Configure(x =>
x.ForRequestedType<T>()
.TheDefault.IsThis(item)
.WithName(itemName));
然後要求從容器中的一個項目,我會做:
return ObjectFactory.GetNamedInstance<T>(key);
如果特定的命名實例不在容器中,這會炸燬,我發現異常並返回null。這是我如何判斷容器中是否已經放入了某些東西(正在使用它來緩存小塊數據)。
但是,我昨天更新了代碼2.6,現在它總是返回任何「T」的實例,即使命名實例在容器中不存在。即使是新的TryGetInstance()方法也能做到這一點。所以我的問題是,我如何判斷命名實例是否實際上不在容器中?我注意到檢索非命名實例並不是這樣。
這是我的新的註冊代碼如下所示:
ObjectFactory.Configure(x => x.For<T>().Use(item).Named(itemName));
如果有人能告訴我什麼,我做錯了,或者有更好的建議這樣做,我會很感激!
這聽起來像是2.6中引入的錯誤。我會研究它。你絕對不應該去查詢這個模型。 – 2010-02-08 15:54:49