Schloss Windsor mit mehreren Konstrukteuren

Ich bin derzeit dabei, eine Umstellung von Ninject auf die aktuelle Version von Castle Windsor für eine einfache C # .NET-Anwendung vorzunehmen.

Der Umbau ist größtenteils gut verlaufen und die Umsetzung der Container hat einwandfrei geklappt. Ich habe jedoch ein kleines Problem mit meinen Repository-Objekten.

Ich habe ein Benutzer-Repository-Objekt, das folgendermaßen codiert ist:

public class UserRepository : IUserRepository {
    public UserRepository(IObjectContext objectContext)  {
        // Check that the supplied arguments are valid.
        Validate.Arguments.IsNotNull(objectContext, "objectContext");

        // Initialize the local fields.
        ObjectContext = objectContext;
    }

    public UserRepository(IObjectContextFactory factory) 
        : this(factory.CreateObjectContext()) { 
    }

    // -----------------------------------------------
    // Insert methods and properties...
    // -----------------------------------------------
}

Um diesem Code zu entsprechen, habe ich die folgenden Einträge in der Konfigurationsdatei meiner Anwendung eingerichtet:

<castle>
    <components>
        <component id="objectContextFactory" lifestyle="custom"
                   customLifestyleType="Common.Infrastructure.PerWebRequestLifestyleManager, Common.Castle"
                   service="Project.DAL.Context.IObjectContextFactory, Project.DAL.LINQ"
                   type="project.DAL.Context.ObjectContextFactory, Project.DAL.LINQ">
        </component>
        <component id="userRepository" lifestyle="custom"
                   customLifestyleType="Common.Infrastructure.PerWebRequestLifestyleManager, Common.Castle"
                   service="Project.BL.Repository.IUserRepository, Project.BL"
                   type="Project.BL.Repository.UserRepository, Project.BL.LINQ">
            <parameters>
              <factory>${objectContextFactory}</factory>
            </parameters>
        </component>
    </components>
</castle>

Für mich sieht alles so aus, wie es sein sollte. Wenn ich versuche, eine Instanz des IObjectContextFactory-Dienstes aufzulösen, rufe ich ein ObjectContextFactory-Objekt ab. Mein Problem tritt auf, wenn ich versuche, eine Instanz des IUserRepository-Dienstes zu beheben. Ich werde mit der folgenden erfreulichen Ausnahme behandelt:

Die Komponente 'userRepository' kann nicht erstellt werden, da Abhängigkeiten zu erfüllen sind. userRepository wartet auf die folgenden Abhängigkeiten:

Dienstleistungen:

- SandCastle.DAL.Context.IObjectContext which was not registered.

Ich habe alles versucht, was mir dazu einfällt. Also, ich sage Ihnen Stackoverflow-Leser: Haben Sie Ideen?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage