/ / Injection Injection Injection - jak zarejestrowaćInstance w .config? - asp.net-mvc, iniekcja zależności, unity-container

Unity Dependency Injection - jak zarejestrowaćInstance w .config? - asp.net-mvc, iniekcja zależności, unity-container

To jest projekt C # Asp.net MVC.

Aktualnie mam mapowania Unity ustawione w pliku global.asax.cs. Chciałbym przenieść ustawienia kontenera z kodu do pliku web.config.

Wszystko poszło dobrze z moimi własnymi typami, ale teraz muszę przetłumaczyć tę linię:

container.RegisterInstance (System.Web.Security.Membership.Provider);

(Wszystkie pozostałe wiersze konfiguracji to container.RegisterRodzaj).

Nie jestem wcale bardzo daleko. Jeśli nawet dołączę

<typeAliases>
<!-- others elided -->
<typeAlias
alias="MembershipProvider"
type="System.Web.Security.MembershipProvider, System.Web"></typeAlias>

umiera z błędem konfiguracji:

The value of the property "type" cannot be parsed. The error is: Could not load file or assembly "System.Web" or one of its dependencies. The system cannot find the file specified.

To jest dość dziwne - wygląda na to, że nie szuka w GAC tego rozwiązania? Czy System.Web nie jest jeszcze w Appdomain?

Jeśli ręcznie skopiuję System.Web do folderu bin Mogę kontynuować i dotrzeć do sedna problemu: w jaki sposób RegisterInstance System.Web.Security.MembershipProvider -> System.Web.Security.Membership.Provider?

<type type="MembershipProvider" mapTo="System.Web.Security.Membership.Provider, System.Web"></type>

daje:

Nie można załadować typu "System.Web.Security.Membership.Provider" z zespołu "System.Web".

zgodnie z oczekiwaniami, ponieważ nie jest to typ.

Dzięki za wszelkie wskazówki.

Odpowiedzi:

5 dla odpowiedzi № 1

czy próbowałeś już dłuższego odniesienia do Assembliy?

System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a

Więc w twoim przypadku będziesz miał linię

<type type="MembershipProvider" mapTo="System.Web.Security.MembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"></type>

Również woth wspominając, że miałeś. w środku "MembershipProvider" w twoim drugim przykładzie.