Архитектура S # arp :: IoC с пользовательским членством - PullRequest
1 голос
/ 16 ноября 2010

Я использую последнюю версию S # arp Architecture ...

В моем проекте я реализую Custom MembershipProvider ...

Первый вопрос, где это правильное место? Я выбираю Core проект ...

Второй вопрос, как работает IoC с пользовательским MembershipProvider?

Вот мой код:

public class AdminMemberProvider : MembershipProvider
{
...
       private readonly IRepository<Customer> userRepository;

       public AdminMemberProvider(IRepository<Customer> __userRepository)
       {
           Check.Require(__userRepository != null, "userRepository may not be null");
           userRepository = __userRepository;
       }
...
}


public class AdminRoleProvider : RoleProvider
{
    private readonly IRepository<Customer> userRepository;   

    public AdminRoleProvider(IRepository<Customer> __userRepository): base()
    {
        Check.Require(__userRepository != null, "userRepository may not be null");

        userRepository = __userRepository;
    }
    ...
}

Когда я попытался выполнить свой проект, я получил ошибку:

Сообщение об ошибке Parser: для этого объекта не определен беспараметрический конструктор.

<add name="AdminRoleProvider" type="MalCat.Shop.Core.Membership.AdminRoleProvider, MalCat.Shop.Core" />

Разве IoC не справится с этим? Что я должен сделать, чтобы это исправить?

Ответы [ 2 ]

1 голос
/ 17 ноября 2010

Я не уверен насчет первого вопроса, мне не кажется, что он принадлежит ядру (если я не ошибаюсь, провайдер членства в System.Web), я бы поставил его с веб-проектом.

Второй вопрос, который ранее обсуждался в группе по острой архитектуре, возможно, эта ветка будет полезна: https://groups.google.com/forum/#!forum/sharp-architecture

Маурисио Шеффер недавно написал в блоге об этом:*

0 голосов
/ 24 ноября 2010

Я бы поставил его на уровне обслуживания (ApplicationServices).Это услуга в конце концов.И он будет использовать ваши UserRepositories на уровне данных.

...