Решение Unity во время выполнения? - PullRequest
1 голос
/ 30 сентября 2011

У меня следующий код в консольной программе.

interface I { ...; string X { get; }; string Y {get; }; string Z {get; } ...}
class A : I {...}
class B : I {...}
class C : I {...}

Программа принимает параметры командной строки, такие как test.exe b -x 10 -z 20.И он создаст момент B и установит X на 10, Z на 20.

Как реализовать это с помощью единицы?Это может быть вопрос новичка.

1 Ответ

3 голосов
/ 30 сентября 2011

Необходимо зарегистрировать сопоставление имен в том же интерфейсе и разрешить его, используя имя, переданное в качестве аргумента.

var container = new UnityContainer();
container.RegisterType<I, A>("a");
container.RegisterType<I, B>("b");
container.RegisterType<I, C>("c");

I instance = container.Resolve<I>(args[0]);

Чтение Регистрация сопоставлений типов в контейнере для объяснения

...