У меня следующая проблема. У меня есть абстрактный базовый тип и конкретный подтип
public interface IInterface
{
void SomeAction()
}
public class CClass : IInterface
{
public void SomeAction()
{
throw new NotImplementedException();
}
}
Я хотел бы разрешить зависимости интерфейса с помощью фабричного метода, но иногда я хотел бы разрешить конкретные зависимости класса без фабричного метода. Я имею в виду:
container.RegisterType<IInterface, CClass>(new InjectionFactory(FactoryMethod));
Мой фабричный метод:
private object FactoryMethod(IUnityContainer arg)
{
/* do some specific logic */
return new CClass();
}
Иногда я хотел бы разрешить это, используя фабричный метод:
var c1 = container.Resolve<IInterface>();
Но иногда я хотел бы восстановить его без вызова FactoryMethod
var c2 = container.Resolve<CClass>();
Но FactoryMethod вызывается во всех отношениях. Зачем? Что случилось? Я хочу использовать фабричный метод для абстрактных зависимостей только