我一整天都在絞盡腦汁,我無法找到解決方案,所以我幫助我。聽到的是我的問題:我HAWE實現一個接口兩類StructureMap有條件使用
public interface ICacheObject
{
string Get();
}
public class WebCacheObject : ICacheObject
{
public string Get()
{
return "Web";
}
}
public class SysteCacheObject : ICacheObject
{
public string Get()
{
return "System";
}
}
因此,在其他一些CLASE例如類檢驗我NEAD注入WebCacheObject和Test2的CLASE我NEAD注入SystemCacheObject。我這樣做在初始化:
ObjectFactory.Initialize(c =>{ c.For<IMessage>().Use<Message>();
c.For<ICacheObject>().ConditionallyUse(t =>{t.If(g => g.RequestedName == "HTTP")
.ThenIt.Is.ConstructedBy(
() =>
new WebCacheObject());
t.If(g =>g.RequestedName =="OtherCache")
.ThenIt.Is.ConstructedBy(
() =>
new SysteCacheObject
());
});
但我不知道該怎麼稱呼測試-S化酶-S,所以如果我把這樣的條件爲真(或如何改變條件,使這將工作)
ObjectFactory.GetInstance <「ITEST>()
測試CLASE將哈威在的WebCache其他情況下SystemCache ???
對不起,我的英語不好。
@PHeiberg解決方案比這更清潔! – Sadegh 2012-09-05 18:26:28