홈>
MVC 3에서는 사용자 정의 WebViewPages를 작성할 수 있음을 이해합니다. IOC 컨테이너를 통해 생성자 주입을 사용하여 종속성을 주입 할 수 있습니까?
- 답변 # 1
- 답변 # 2
생성자주입은 수행 할 수 없습니다. 하지만 Ninject를 사용하여 이와 같은 작업을 수행 할 수 있습니다.
공용 추상 클래스 CustomViewBase
: WebViewPage 여기서 TModel : 클래스 { [주입] 공개 IFace 얼굴 { 도망; 세트; } } Global.asax에서 IDependencyResolver를 설정했다고 가정하면 @Face 속성을 올바르게 초기화해야합니다.하지만한 가지 중요한 경고 : _Layout.cshtml에서 @Face에 액세스 할 수 없습니다 (Brad Wilson에 따르면) 레이아웃이 MVC 외부에서 작동하고 레이아웃에서 액세스하려고하면 @Face가 null이됩니다. 페이지.
어쨌든 나는 그 견해가 복잡한 논리를 다루지 않아도된다는 점에서 다른 사람들에게 동의한다.
- 답변 # 3
예, 가능하지만 실제로는 좋은 생각이 아니라고 생각합니다. 뷰 레벨에 "서비스"가 필요한 이유는 무엇입니까? 주요 MVC 가이드 라인을 기억하십시오.뷰가 멍청해야합니다.실제로 뷰 모델 객체를 HTML로 변환하기위한 일종의 템플릿이어야합니다.
관련 자료
- 함수 앱 사용자 지정 종속성, 로컬에서 Python 패키지를 설치하고 참조하는 방법은 무엇입니까?
- c # 메인 programcs에서 생성자를 사용하여 인터페이스를 주입하는 방법
- jersey - @Inject에 대한 사용자 정의 InjectionResolver 정의
- reactjs : React에서 사용자 지정 후크에 대한 종속성 배열을 처리하는 방법
- unit testing - Angular의 생성자에서 @Inject 텍스트로 구성 요소를 테스트하는 방법
- android - 다른 의존성 메소드를 사용하는 클래스가 사용자 정의 라이브러리에서 작동하지 않습니다
- javascript - 사용자 정의 저장소를 주입 할 수 없습니다
- c# - 생성자 경고"이 객체에 대해 매개 변수가없는 생성자가 정의되어 있지 않습니다"가있는 사용자 정의 Jsonnet JsonConverter
- kotlin - 사용자 정의 Gradle 플러그인에 종속성을 추가하려면 어떻게합니까?
- c++ - 커스텀 타입 생성자 배열 초기화
- maven - 웹 애플리케이션에 사용자 정의 jar 종속성을 추가하는 방법은 무엇입니까?
- dependency injection - 인젝터를 통해 토큰으로 등록 된 모든 종속성을 Angular로 주입
- php - 컨테이너를 사용하여 개인 서비스에 종속성을 주입하는 방법은 무엇입니까?
- Angular 코어 클래스 대신 커스텀 클래스를 주입하기 위해 providedIn을 제공하는 Injectable
관련 질문
- php : Nette 프레임워크 -프리젠터 또는 라떼 템플릿 내부에서 서비스, 서비스 클래스 모델, 구성 요소, 도우미 액세스, 가져오기
- c# : 동등한 단순 인젝터 .Register 호출
- .net : 시작 시 시작되는 HostedService
- Jersey/HK2에서 한 인터페이스의 두 가지 구현, 다른 인터페이스에서 먼저 재사용
- c# : MVC ASP.NET에서 컨트롤러에 대해 다른 로거 삽입
- c# : ASP.NET 핵심 종속성 주입으로 데코레이터를 적용하는 방법
- asp.net : 간단한 인젝터 -MVC 컨트롤러를 해결할 때이 객체에 대해 정의 된 매개 변수없는 생성자 없음
- .net : 로깅 외관이 사용되면 IOC /DI를 사용할 때 인프라를 주입해야합니까?
- c# : 통제의 반전은 어떻게 도와 줍니까?
- c# : nINJECT와의 순환 의존성
브래드 윌슨 (Brad Wilson)의 블로그 게시물에 뷰 삽입에 대한 설명이 있습니다. http://bradwilson.typepad.com/blog/2010/07/service-location-pt3-views.html
보기에 대한 다른 사람들의 진술은 생성자 주입이 완전히 정확하지는 않습니다. 네
IDependencyResolver
생성자 인수가있는 뷰를 만들 수 있습니다. 그러나 자체보기 엔진을 구현하지 않으면 전혀 도움이되지 않습니다. 면도기와 같은 기존 뷰 엔진에는 매개 변수가없는 생성자가 있어야합니다. 이는 뷰에서 속성 삽입 만 수행 할 수 있음을 의미합니다.그러나 다른 사람들이 말했듯이 주입을 볼 수는 없습니다. 뷰는 멍청해야하며 뷰 모델을 HTML로 렌더링하면됩니다. 의존성이 필요한 것은 컨트롤러 나 서비스에서 수행해야합니다.