我在我的應用程序中使用Castle.Windsor。我的組件及其參數在app.config文件中配置。但我也希望能夠通過命令行參數傳遞參數。這意味着cmd-args > config-args
。我試圖使用container.Resolve<Class>(dictionary)
。但它不起作用(使用config-args)。奇怪的是,如果我使用匿名類型,它的作品。溫莎解決與參數字典
在此先感謝。
編輯
public class TestB
{
public string A { get; set; }
public string B { get; set; }
public TestB(string a)
{
A = a;
//B = b;
}
}
[Test]
public void Test()
{
var dictionary = new Hashtable
{
{ "a", "b" }
};
var anonymousType = new
{
a = "b"
};
WindsorContainer container = new WindsorContainer(new XmlInterpreter());
var opt1 = container.Resolve<TestB>(anonymousType);
var opt2 = container.Resolve<TestB>(dictionary);
Assert.That(opt1.A == "b");
Assert.That(opt2.A == "b");
}
這是怪異的。兩個斷言都成功了。但是,如果我交換opt1和opt2解析,斷言2失敗。
你能告訴我們你的代碼與字典和匿名類型? – svick