AutoFac geçen parametre etrafında başım alınamıyor, aşağıdaki kod çalışmaz:Autofac parametre geçişi ve Autowiring
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));
}
}
atar:
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.
ancak aşağıdaki kod
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));
Sorunuz çok açık değil. Otofac kullanıcıları olmayanlar için, p, config, TypedParameter.From ve container bildirimlerini gösterebilir misiniz? Ayrıca, ne zaman "işe yaramadığını" belirtin - zaman hatası derleme? İstisna? –
sayılı belgede örnek olarak bir örnek olarak açıklanabilir. LINQPad (referans Autofac.dll) –