をオートワイヤリングするAutofacに渡すパラメータのまわりで私の頭を取得できません、次のコードは動作しません。Autofacパラメータ渡しと
class Config {
public Config(IDictionary<string, string> conf) {}
}
class Consumer {
public Consumer(Config config) {}
}
void Main()
{
var builder = new Autofac.Builder.ContainerBuilder();
builder.Register<Config>();
builder.Register<Consumer>();
using(var container = builder.Build()){
IDictionary<string,string> parameters = new Dictionary<string,string>();
var consumer = container.Resolve<Consumer>(Autofac.TypedParameter.From(parameters));
}
}
スロー:
DependencyResolutionException: The component 'UserQuery+Config' has no resolvable constructors. Unsuitable constructors included:
Void .ctor(System.Collections.Generic.IDictionary`2[System.String,System.String]): parameter 'conf' of type 'System.Collections.Generic.IDictionary`2[System.String,System.String]' is not resolvable.
が、次のコードをは仕事ん:
IDictionary<string,string> parameters = new Dictionary<string,string>();
var config = container.Resolve<Config>(Autofac.TypedParameter.From(parameters));
var consumer = container.Resolve<Consumer>(Autofac.TypedParameter.From(config));
あなたの質問はあまり明確ではありません。オートファックのユーザーではない私たちのために、p、config、TypedParameter.Fromとcontainer.Resolveの宣言を表示できますか?また、どのように「動作しませんか」 - コンパイル時のエラーを指定してください。例外? –
は、例えば、 LINQPad(リファレンスAutofac.dll) –