Я использую IUnityContainer
для регистрации типов для последующего разрешения. Я зарегистрировал типы, как показано ниже:
// Register a "named type" mapping
container.RegisterType<IProcessHelper, FirstResponseHelper>("FirstResponseHelper");
container.RegisterType<IProcessHelper, SecondResponseHelper>("SecondResponseHelper");
Следовательно, я мог бы использовать, как показано ниже, в одном из моих конструкторов:
public Finish(
IUnitOfWork unitOfWork ,
ILog logger,
..........
[Dependency("FirstResponseHelper")] IProcessHelper firstResponseHelpe,
[Dependency("SecondResponseHelper")] IProcessHelper secondResponseHelper
)
{
.........
_firstResponseHelpe = firstResponseHelper;
_secondResponseHelper = secondResponseHelper;
}
... и хотел бы решить эту проблему с помощью Substitute, что-то вроде «ниже». Но передача «имя» => «FirstResponseHelper» не допускается в Substitute! :(
// Trying to resolve in UnitTest, looks like below (passing name)
IProcessHelper firstResponseHelper = Substitute.For<IProcessHelper>("FirstResponseHelper")
IProcessHelper secondResponseHelper = Substitute.For<IProcessHelper>("SecondResponseHelper")
Мне нужно вызвать метод из FirstResponseHelper и SecondResponseHelper из моего UnitTest (MSTest). Следовательно, мне нужно разрешить это, используя Substitute.For<>
для интерфейса «именованного типа».