Я не использовал Unity, но при условии, что он такой же, как и любой другой контейнер, все должно быть так просто:
container.RegisterType<NamespaceA.IType, NamespaceA.Type>()
container.RegisterType<NamespaceB.IType, NamespaceB.Type>();
По сути, типы будут регистрироваться внутри, используя их Type
метаданные, поэтому контейнер будет видеть их как два совершенно разных типа, как если бы они назывались ITypeA
и ITypeB
.
Затем, когда вы вводите их, вам просто нужно сделатьубедитесь, что вы ссылаетесь на правильное пространство имен.
Если вам нужны оба из них, явно указывайте оба пространства имен:
public MyService(NamespaceA.IType aType, NamespaceB.IType bType)
Или, если вам нужно только одно, то просто ссылайтесь на пространство имен с помощьюusing
(или явно) и введите его как обычно:
using NamespaceA;
public class MyService
{
public MyService(IType aType)
{
}
}