2008-10-21 10 views
0

Я работаю над своим 1-м проектом, используя рамки MS Iity IoC.Любой способ добавить некоторые сборки по умолчанию для разрешения типов из Unity/ObjectBuilder?

Если у меня есть это в моей конфигурации единства:

<container name="TestBusiness"> 
    <types> 
     <type type="PFServer.DataAccess.TestDataAccess" /> 

Тогда я получаю ошибку:

Could not load type 'PFServer.DataAccess.TestDataAccess' from assembly 'Microsoft.Practices.Unity.Configuration, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'.

Однако, если добавить имя сборки для определения типа:

<container name="TestBusiness"> 
    <types> 
     <type type="PFServer.DataAccess.TestDataAccess, PFServer" /> 

Тогда он отлично работает. Есть ли способ добавить набор по умолчанию для сборок для загрузки типов? Странная вещь в этом случае заключается в том, что «PFServer.dll» - это сборка, которая все равно содержит всю эту конфигурацию. Мне показалось странным, что текущая сборка не находится на пути к разрешению объектов ... Или я просто делаю что-то неправильно?

ответ

2

Unity разрешает строки для ввода объектов путем вызова статического метода Type.GetType (string), который ожидает аргумент AssemblyQualifiedName. Вызов GetType выполняется в сборке Microsoft.Practices.Unity.Configuration, которая не знает о вашей сборке PFServer, поэтому ей требуется имя сборки в строке.

Я думаю, что псевдонимы типов могут вам помочь. Вот пример.

<unity> 
    <typeAliases> 
     <typeAlias alias="TestDataAccess" type="PFServer.DataAccess.TestDataAccess, PFServer" /> 
     ... 
    </typeAliases> 

    <containers> 
     <container name="TestBusiness"> 
     <types> 
      <type type="TestDataAccess" /> 
      ... 
+0

Благодарим вас за отзыв. Я просматривал документацию для Unity в MSDN, и в их примерах есть места, где они специально не добавляют имя сборки, поэтому я был смущен тем, что мне пришлось. Это не первая ошибка, которую я видел в документации по единству и примерах. – CodingWithSpike 2008-10-22 16:50:49

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

  • Нет связанных вопросов^_^