2012-01-28 5 views
0

У меня есть служба wcf, которая обеспечивает основную конфигурацию для всех других служб в системе.Unity RegisterInstance во время выполнения (не из файла конфигурации)

В соответствии с конфигурацией, я хотел бы создать экземпляр (RegisterInstance \ Type) во время выполнения.

Я нашел только образцы для того, как это сделать с помощью файла конфигурации.

Я хочу получить тип из моей службы конфигурации. Все типы, которые я могу получить от службы, наследуются от одного и того же интерфейса.

Как это сделать без конфигурационного файла?

Благодаря

+0

Единственное решение, о котором я думаю, это получить из службы конфигурации путь сборки типа, который я хочу загрузить. Посредством отражения загрузите его и сделайте RegisterType в соответствии с этим. Что ты говоришь? – Guy

ответ

0

Если служба должна отправить обратно достаточно информации для вас, чтобы быть в состоянии выполнить регистрацию, то вам нужно будет пройти обратно полное имя типа, включая имя сборки, а затем вы можете позвонить Type.GetType в возьмите объект типа, который вы затем можете передать в RegisterType

0

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

  1. На стороне клиента вы должны начать клиент (который должен быть настроен правильно)
  2. Вызвать «службу конфигурации» и принимать любую информацию, которую Вы получаете от там и
  3. Try, чтобы понять его в локальном контексте (найдите типы в сборках, которые вы, возможно, не имеете в своей локальной области и т. д.).
  4. Настройка локального экземпляра вашего UnityContainer, а затем
  5. решить граф объектов и запустить приложение/сервис

не прямо вперед ИМХО решения.

Но если вы хотите придерживаться этой настройки: почему бы не отправить конфигурацию xml напрямую? Даже если вы хотите, вы можете передать XML-код.

Смежные вопросы