2014-04-03 9 views
5

ich mit Unity Setup MVC5 Anwendung möchten 3. habe ich einen Standard-Web-mvc5 Anwendung aus einer Standardvorlage dann EinheitDer Typ IUserStore`1 keine zugängliche Konstruktor hat

hinzufügen Als ich das Register Aktion am Zugriff auf In AccountController erhalte ich folgende Ausnahme:

Der Typ IUserStore`1 hat keinen barrierefreien Konstruktor.

von diesem Beitrag How to add MVC 5 authentication to Unity IoC? Ich weiß, das Problem ist, dass Unity wählt den Konstruktor mit längeren Parameterliste.

Die Lösung ist das Konto Controller registrieren Standardkonstruktors die folgende Art und Weise verwendet werden:

container.RegisterType<AccountController>(new InjectionConstructor()); 

Was würde ich tun möchte, ist es in der Konfigurationsdatei im Code nicht registrieren es ist möglich, das Gleiche in web.config zu tun?

Mit besten Grüßen, Sebastian

Antwort

4

Sie können Unity XML-Konfiguration mit konfigurieren. In Ihrem Fall wäre es etwa so aussehen:

<configSections> 
    <section name="unity" type="Microsoft.Practices.Unity.Configuration.UnityConfigurationSection, Microsoft.Practices.Unity.Configuration"/> 
</configSections>  

<unity xmlns="http://schemas.microsoft.com/practices/2010/unity">  
    <container> 
    <register type="MyApp.AccountController, MyApp"> 
     <constructor /> 
    </register> 
    </container> 
</unity> 

Und dann müssen Sie explizit die Konfiguration laden:

IUnityContainer container = new UnityContainer(); 
container.LoadConfiguration(); 
+0

Genau das, was ich brauchte. Prost! –