2010-07-05 39 views
0

在我目前的項目中,我正在嘗試用結構圖(2.6.1)替代Windsor IoC。但是在註冊一些泛型時遇到了一些問題。我如何註冊IFilterConverter<T>以使用FilterConverter<SomeSpecificType>。我試過ConnectImplementationsToTypesClosing(IFilterConverter),但從我讀過的(Jimmy Bogard's article)我需要一個具體的類型定義如下: - SomeConcreteType : IFilterConverter<SomeSpecificType>爲了工作,我沒有。結構圖2.6.1

因此,重申如果我有一個類型,需要一個構造函數參數IFilterConverter<SomeSpecificType>,我想結構圖給我提供FilterConverter<SomeSpecificType>

隨着溫莎我使用XML配置選項(這是我想離開),但我所做的只是建立像這樣的配置:

<component id="IFilterConverter" service="SomeNamespace.IFilterConverter`1, SomeNamespace" type="SomeNamespace.FilterConverter`1, SomeNamespace" lifestyle="PerWebRequest"> 

我該怎麼做在SM相當於(使用代碼,而不是XML配置文件)

謝謝

+0

出於好奇 - 你爲什麼要從溫莎遷移到StructureMap? – 2010-07-06 10:32:26

+0

沒有什麼重要的原因,只是我聽過並閱讀了很多關於結構圖的內容,並且想嘗試一下。正如我在OP中所說的,我在Windsor使用配置文件選項,並沒有太在意。我意識到我可以通過c#代碼切換到配置Windsor,但我認爲我會試試SM。我絕對不建議SM比Windsor「更好」。這只是真正的好奇心。 – 2010-07-06 10:37:20

回答

1

我認爲這應該做到這一點。

_container = new Container(); 
_container.Configure(x => 
         { 
          x.For(typeof (IFilterConverter<>)).Use(typeof (FilterConverter<>)); 
         }); 
+0

感謝chrissie1,這個伎倆。 – 2010-07-05 10:13:48