Qualquer maneira de adicionar algumas assembleias padrão para tipos resolvem partir em Unity / ObjectBuilder?
-
03-07-2019 - |
Pergunta
Eu estou trabalhando em meu projeto 1º utilizando framework MS Unidade IoC.
Se eu tenho isso na minha configuração de unidade:
<container name="TestBusiness">
<types>
<type type="PFServer.DataAccess.TestDataAccess" />
Então eu recebo o erro:
Não foi possível carregar o tipo 'PFServer.DataAccess.TestDataAccess' de montagem 'Microsoft.Practices.Unity.Configuration, Version = 1.1.0.0, Culture = neutral, PublicKeyToken = 31bf3856ad364e35' .
No entanto, se eu adicionar o nome do assembly para a definição do tipo:
<container name="TestBusiness">
<types>
<type type="PFServer.DataAccess.TestDataAccess, PFServer" />
Em seguida, ele funciona bem. Existe alguma maneira de adicionar algum conjunto padrão de conjuntos de tipos de carga a partir de? O curioso neste caso é que "PFServer.dll" é o conjunto que contém toda esta configuração de qualquer maneira. Acho estranho que a corrente de montagem não está no caminho para objetos resolver ... Ou estou apenas fazendo algo errado?
Solução
Unidade resolve cordas para objetos do tipo chamando o Type.GetType método estático (string) que espera um argumento que é um AssemblyQualifiedName . A chamada para GetType é feita no Microsoft.Practices.Unity.Configuration montagem que não sabe sobre o seu PFServer montagem por isso precisa o nome do assembly na string.
Eu acho que tipo aliases pode ajudá-lo. Aqui está um exemplo.
<unity>
<typeAliases>
<typeAlias alias="TestDataAccess" type="PFServer.DataAccess.TestDataAccess, PFServer" />
...
</typeAliases>
<containers>
<container name="TestBusiness">
<types>
<type type="TestDataAccess" />
...