Тип контейнера конструктора типа контейнера Unity - PullRequest
0 голосов
/ 07 апреля 2009

В настоящее время я пытаюсь использовать файл конфигурации для предоставления информации Unity Framework, которая выглядит следующим образом ...

<configuration>
<unity>
 <typeAliases>
  <typeAlias alias="singleton" type="Microsoft.Practices.Unity.ContainerControlledLifetimeManager,   Microsoft.Practices.Unity, Culture=neutral, Version=1.1.0.0,   PublicKeyToken=31bf3856ad364e35" />
 </typeAliases>
 <containers>
   <container>
     <types>  
       <type type="Common.ISharedConfiguration, Common, Version=3.1.0.0, Culture=neutral,  PublicKeyToken=1111111111111111" mapTo="Common.SharedConfigurationManager, Common, Version=3.1.0.0, Culture=neutral, PublicKeyToken=1111111111111111">
         <lifetime type="singleton" />
         <typeConfig  extensionType="Microsoft.Practices.Unity.Configuration.TypeInjectionElement, Microsoft.Practices.Unity.Configuration, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35">
           <constructor>
             <param name="OurEnumChoice" parameterType="MyProjectsEnum" >
               <value value="MyProjectsEnum.OurFirstConstant" type="MyProjectsEnum"/> 
             </param>
           </constructor> 
         </typeConfig>
       </type>
     </types>
   </container>
 </containers>
</unity>
</configuration>

Если я выберу что-то вроде System.String и у моего конкретного класса будет получатель строки, эта информация конфигурационного файла для Unity прекрасно работает. В тот момент, когда я решаю использовать Enum вместо строки, Unity выдает ошибку, подобную этой ...

Не удалось загрузить тип MyProjectsEnum из сборки Microsoft.Practices.Unity.Configuration, версия = 1.1.0.0, культура = нейтральная, PublicKeyToken = 31bf33856ad364e35

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

1 Ответ

2 голосов
/ 23 апреля 2009

Вам необходимо указать полное имя типа для атрибутов 'parameterType' и 'type'. Почти то же самое, что вы сделали для узла typeAlias. По умолчанию Unity ищет свою собственную сборку для неквалифицированных типов.

...