Jede Art und Weise einige Standard-Baugruppen hinzufügen Typen lösen von in Unity / ObjectBuilder?

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

Frage

Ich arbeite an meinem ersten Projekt mit MS Unity IoC-Framework.

Wenn ich dies in meiner Einheit Konfiguration:

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

Dann bekomme ich die Fehlermeldung:

  

Typ konnte nicht geladen werden   'PFServer.DataAccess.TestDataAccess'   von der Montage   ‚Microsoft.Practices.Unity.Configuration,   Version = 1.1.0.0, Culture = neutral,   PublicKeyToken = 31bf3856ad364e35' .

Wenn ich jedoch den Namen der Assembly der Typdefinition hinzufügen:

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

Dann funktioniert es gut. Gibt es einen Weg, um einigen Standardsatz von Baugruppen hinzufügen von Arten zu laden? Das Seltsame ist in diesem Fall, dass „PFServer.dll“ ist die Versammlung, die ohnehin all diese Konfiguration enthält. Ich finde es seltsam, dass die aktuelle Assembly nicht im Weg ist, Objekte zu lösen ... Oder bin ich nur falsch, etwas zu tun?

War es hilfreich?

Lösung

Einheit löst Strings Objekte Typ durch die statische Methode Type.GetType (string) aufrufen, die ein Argument erwartet, dass ein AssemblyQualifiedName . Der Aufruf von GetType ist in der Microsoft.Practices.Unity.Configuration Montage gemacht, die nicht über Ihre PFServer Montage nicht kennt, so dass es den Namen der Assembly in der Zeichenfolge muss.

Ich denke, Typ Aliase könnte Ihnen helfen. Hier ist ein Beispiel.

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

    <containers>
      <container name="TestBusiness">
        <types>
            <type type="TestDataAccess" />
            ...
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top