¿Alguna forma de agregar algunos ensamblados predeterminados para resolver tipos desde Unity / ObjectBuilder?

StackOverflow https://stackoverflow.com/questions/222102

Pregunta

Estoy trabajando en mi primer proyecto usando el marco MS Unity IoC.

Si tengo esto en mi configuración de la unidad:

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

Entonces me sale el error:

  

No se pudo cargar el tipo   'PFServer.DataAccess.TestDataAccess'   desde el montaje   'Microsoft.Practices.Unity.Configuration,   Versión = 1.1.0.0, Cultura = neutral,   PublicKeyToken = 31bf3856ad364e35 '.

Sin embargo, si agrego el nombre del ensamblado a la definición de tipo:

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

Entonces funciona bien. ¿Hay alguna forma de agregar algún conjunto predeterminado de ensamblados para cargar tipos? Lo extraño en este caso es que " PFServer.dll " Es el ensamblaje que contiene toda esta configuración de todos modos. Me parece extraño que el ensamblaje actual no esté en la ruta para resolver objetos ... ¿O simplemente estoy haciendo algo mal?

¿Fue útil?

Solución

Unity resuelve cadenas para objetos Type llamando al método estático Type.GetType (string) que espera un argumento que es un AssemblyQualifiedName . La llamada a GetType se realiza en el ensamblado Microsoft.Practices.Unity.Configuration que no conoce su ensamblado PFServer, por lo que necesita el nombre del ensamblado en la cadena.

Creo que los alias de tipo podrían ayudarte. Aquí hay un ejemplo.

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

    <containers>
      <container name="TestBusiness">
        <types>
            <type type="TestDataAccess" />
            ...
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top