我已经关注了代码:
public class TestClass
{
public string Foo { get; set; }
public ITest<string> Test { get; set; }
}
[Convertible]
public interface ITest<T>
{
T Param { get; set; }
}
[Convertible]
public class Test<T> : ITest<T>
{
public T Param { get; set; }
public string OtherParam { get; set; }
}
我想用它
WindsorContainer container = new WindsorContainer(new XmlInterpreter());
var t = container.Resolve<TestClass>();
我不想使用Fluent配置而是使用xml配置。另外,我想逃避ITest组件的显式注册。它是lloks,它可以只配置一个组件注册(TestClass),所有参数都可以在&lt; parameters&gt;中提供。节点。但是目前我无法创建工作配置,它创建 null TestClass对象或TestClass,并将Test属性设置为 null 。
我的配置:
<component id="Service.Main"
type="ConsoleApplication1.TestClass"
lifestyle="transient">
<parameters>
<foo>foo string</foo>
<Test>
<Param>param string</Param>
<OtherParam>sdgsdfgdf</OtherParam>
</Test>
</parameters>
</component>
也许有人可以建议正确的配置?日Thnx
答案 0 :(得分:2)
所以,我得到了3.2.0版本的来源。 添加简单的控制台应用程序,并通过调试检查不同的版本。
这是工作解决方案:
<component id="Service.Main"
type="ConsoleApplication1.TestClass"
lifestyle="transient">
<parameters>
<foo>foo string</foo>
<Test>
<parameters type="ConsoleApplication1.Test`1[[System.String, mscorlib]], ConsoleApplication1">
<Param>param string</Param>
<OtherParam>sdgsdfgdf</OtherParam>
</parameters>
</Test>
</parameters>
</component>
重要说明:
无论如何使用3.2.0检查配置并且它可以工作。