안녕하세요, 저는 ViewModelFactory "패턴"을 구현하려고하는데 현재 IoC 컨테이너의 제약 조건을 고려할 때 무엇이 가장 좋은 방법인지 궁금합니다.ASP.NET 코어 및 ViewModelFactory
public class UserCreateViewModelFactory
{
private readonly DbContext db;
public UserCreateViewModelFactory(DbContext db){ this.db = db;}
public void Create(CreateUserViewModel viewModel)
{
//Creates the user
}
}
나는 위의 클래스를 컨트롤러에 쉽게 삽입 할 수 있습니다. 좀 더 ViewModelBuilders을 필요로 할 때 머리의 통증이 올 것이다, 그래서 두 가지 피하고 싶은 : 주사와
- 블로 트의의 ctor 등록 내가 주입 할 수 있도록하려는
와
IViewModelFactory
다음과 같이 그것을 사용 : Build(T)
를 호출에가있다 [HttpGet]
public IActionResult GetUsers(int id)
{
return View(viewModelFactory.Build<GetUserViewModel>(id));
}
공지가 올바른 012 전화구현.
StructMap 컨테이너가 구체적인 구현을 해당 인터페이스에 바인딩하는 것을 알고 있지만 프로젝트에 다른 dependecy를 추가 할 필요가없는 솔루션을 찾으려고합니다.
뷰 모델 생성을 추상화하려는 이유를 설명 할 수 있습니까? 뷰 모델은 DTO입니다. 그것은 컨트롤러가 전형적으로 스스로 새롭게해야 할 일입니다. 일반적으로 DTO 생성을 추상화 할 이유는 없습니다. – Steven
복잡한보기 모델이 있다고 가정 해보십시오. 컨트롤러 코드 본체에 직접 생성 코드를 허용하는 것은 좋지 않습니다. 복잡한 비즈니스 코드를 수행하도록 서비스를 위임 한 이유와 동일한 원리입니다. 여기 슬림 컨트롤러를 목표로하고 있습니다. 따라서 사용자 요청에 응답하고 그 결과를 반환하는 것과 같이 동작은 거의하지 않아야합니다. –
응용 프로그램에 [this one] (https://www.cuttingedge.it/blogs/steven/pivot/entry.php?id=92)와 같은 디자인의 이점이있을 수 있습니다. – Steven