У меня есть фасад в библиотеке, который предоставляет некоторые сложные функции через простой интерфейс. Мой вопрос заключается в том, как сделать инъекцию зависимостей для внутренних типов, используемых на фасаде. Скажем, мой C# код библиотеки выглядит -Unity 1.2 Зависимость впрыска внутренних типов
public class XYZfacade:IFacade
{
[Dependency]
internal IType1 type1
{
get;
set;
}
[Dependency]
internal IType2 type2
{
get;
set;
}
public string SomeFunction()
{
return type1.someString();
}
}
internal class TypeA
{
....
}
internal class TypeB
{
....
}
И мой сайт код похож -
IUnityContainer container = new UnityContainer();
container.RegisterType<IType1, TypeA>();
container.RegisterType<IType2, TypeB>();
container.RegisterType<IFacade, XYZFacade>();
...
...
IFacade facade = container.Resolve<IFacade>();
Здесь facade.SomeFunction() бросает исключение, потому что facade.type1 и facade.type2 равны нулю. Любая помощь приветствуется.
Но если я устанавливаю [сборка: InternalsVisibleTo («Microsoft.Practices.Unity»)] не должно работать? – Qvin
Я сомневаюсь, что Microsoft.Practices.Unity не является вызывающей сборкой, создание вашего контейнера. – Femaref