I가 3 개 프로젝트 파일 내 서비스 레이어 프로젝트에 IOC (코드) 코드를 어디에 두어야합니까?
webui - controllers and views
framework - service layer and repos
tests- unit tests
그래서 내가 볼 어떻게 내 컨트롤러 만 (즉, 내 비즈니스 로직을 포함) 내 서비스 계층에게 이야기하는 것입니다. 서비스 계층은 repos와 대화하고 데이터베이스 데이터를 가져옵니다.
내 저장소는 데이터베이스를 수행하고 데이터를 반환합니다.
이제 단위 테스트를하고 싶다면 위조 된 서비스 계층과 가짜 저장소가 필요합니다.
이 방법을 사용하면 격리 된 컨트롤러와 격리 된 서비스 레이어를 테스트 할 수 있습니다.
그래서 내 서비스 계층에서 사용할 수 있도록 프레임 워크 클래스 라이브러리에 내 발단 코드를 두어야합니까?
스티븐 당신은 내가 MVC 확장 글로벌 영문이
// 설정 Ninject에 같은 일을해야 말하는
편집
// 이제 물건을 결합
private class SportsStoreServices : NinjectModule
{
public override void Load()
{
Bind<IAdminService>().To<AdminService>();
Bind<IAdminRepo>().To<AdminRepo>();
}
}
// 컨트롤러
public class AccountController : Controller
{
//
// GET: /Account/
private IAdminService adminService;
public AccountController(IAdminService adminService)
{
this.adminService = adminService;
}
public ActionResult Login()
{
var getAllAdmins = adminService.GetAllAdmins();
return View();
}
}
// 서비스 레이어
public class AdminService : IAdminService
{
private IAdminRepo adminRepo;
public AdminService(IAdminRepo adminRepo)
{
this.adminRepo = adminRepo;
}
public List<Admins> GetAllAdmins()
{
return adminRepo.GetAllAdmins();
}
}
//Repo
public class AdminRepo : IAdminRepo
{
public List<Admins> GetAllAdmins()
{
// some query to get all admins
}
}
ninject.web.mvc를 사용하고 있습니까? https://github.com/ninject/ninject.web.mvc – dotjoe
서비스 레이어는 Ninject에 대해 아무것도 모릅니다. – dotjoe
현재 해당 사항 없음. 나는 방금 webui 부분으로 내 문제를 해결하지 않을 것이라고 asp.net mvc 2.0 프로. 서비스 계층이 아닙니까? (자체 프로젝트 폴더에 repo 클래스와 함께있는 내용은 무엇입니까?) – chobo2