Использовать репозиторий в dll, на который ссылаются, используя платформу сущностей - PullRequest
0 голосов
/ 17 мая 2011

Я создал DLL , которая содержит множество аутентификаций и управления пользователями , которые я пытаюсь использовать в отдельном проекте (веб-сайт MVC 3) ,

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using TestProj.Authentication;

namespace TestSite.MVC.Areas.Admin.Controllers
{
    public class TestController : Controller
    {     
        AuthenticationRepository authrep = new AuthenticationRepository();

        public ActionResult Index()
        {
            authrep.DeleteUser(1);
            return View();
        }
    }
}

Теперь это явно не работает, что понятно.

Нужна ли здесь инъекция зависимостей?
И как в этом случае будет выглядеть базовый код?
Нужно ли что-то добавить в конструктор для указанной DLL ?

1 Ответ

2 голосов
/ 17 мая 2011

Попробуйте структурировать свой контроллер следующим образом:

public class TestController : Controller
    {     
        IAuthenticationRepository AuthenticationRepository { get;set; }

        public void TestController (IuthenticationRepository authenticationRepository)  
        {
          this.AuthenticationRepository = authenticationRepository;
        }

        public ActionResult Index()
        {
            this.AuthenticationRepository.DeleteUser(1);

            return View();
        }
    }

Создайте интерфейс для своего хранилища.Затем можно использовать инфраструктуру DI (например, Ninject для MVC 3) для внедрения экземпляров AuthenticationRepository в использования IAuthenticationRepository.

https://github.com/ninject/ninject/wiki

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...