При попытке сделать резолвинг по имени вылетает ошибка 'Autofac.Core.Activators.Reflection.DefaultConstructorFinder' on type 'ConsoleApplication1.Program+MainClassOlolo' can be invoked with the available services and parameters: Cannot resolve parameter 'INamed named' of constructor 'Void .ctor(INamed)'."
При резолвинге Named/Keyed вложенные зависимости также будут резолвиться с использованием Name/Key или же это распространяется непосредственно на сам класс, который резолвится?
class Program
{
static void Main(string[] args)
{
var container = new ContainerBuilder();
container.RegisterType<NamedB>().Named<INamed>("B");
container.RegisterType<NamedA>().Named<INamed>("A");
container.RegisterType<MainClassOne>().Named<MainClassOne>("A");
container.RegisterType<MainClassTwo>().Named<MainClassTwo>("B");
var di = container.Build();
var a = di.ResolveNamed<MainClassTwo>("B");
var a2 = di.ResolveNamed<MainClassOne>("A");
}
public class MainClassOne
{
public MainClassOne(INamed named)
{
Console.WriteLine("MainClassBla = " + named.Name);
}
}
public class MainClassTwo
{
public MainClassTwo(INamed named)
{
Console.WriteLine("MainClassOlolo = " + named.Name);
}
}
public interface INamed
{
string Name { get; set; }
}
public class NamedA : INamed
{
public string Name
{
get { return "A"; }
set { }
}
}
public class NamedB : INamed
{
public string Name
{
get { return "B"; }
set { }
}
}
}
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости