私は私のアプリケーションでCastle.Windsorを使用しています。私のコンポーネントとそのパラメータは、app.configファイル内で設定されます。しかし、私はまた、コマンドライン引数でパラメータを渡すことができるようにしたい。つまり、cmd-args > config-args
を意味します。私はcontainer.Resolve<Class>(dictionary)
を使ってみました。しかし、動作しませんでした(config-argsが使用されています)。不思議なことに、私が匿名のタイプを使用すると、うまくいきます。ウィンザー引数の辞書で解決する
ありがとうございます。気紛れだ
EDIT
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