Zamek Windsor z wieloma konstruktorami

Obecnie przeprowadzam konwersję, z użycia na Ninject, do bieżącej wersji Castle Windsor na prostą aplikację C # .NET.

Przeważnie konwersja przebiegła dobrze, a wdrożenie kontenerów przebiegło bez zarzutu. Mam jednak mały problem z obiektami repozytorium.

Mam obiekt repozytorium użytkownika zakodowany w następujący sposób:

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...
    // -----------------------------------------------
}

Aby odpowiadać temu kodowi, ustawiłem następujące wpisy w pliku konfiguracyjnym mojej aplikacji:

<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>

Dla mnie wszystko wygląda tak, jak powinno. Gdy próbuję rozwiązać wystąpienie usługi IObjectContextFactory, odzyskuję obiekt ObjectContextFactory. Mój problem pojawia się, gdy próbuję rozwiązać instancję usługi IUserRepository. Jestem traktowany z następującym zachwycającym wyjątkiem:

Nie można utworzyć komponentu „userRepository”, ponieważ ma on zależności do spełnienia. UserRepository oczekuje na następujące zależności:

Usługi:

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

Próbowałem wszystkiego, co mogę o tym myśleć. Tak więc, dla czytelników stackoverflow, mówię: masz jakieś pomysły?

questionAnswers(2)

yourAnswerToTheQuestion