2011-01-24 4 views
2

MVC3을 RC2에서 RTM으로 업그레이드했습니다. 우리는 Ninject 2.1.0.76을 사용하고 있었지만 일단 업그레이드를하면 작업이 중단되었습니다. 그래서 NuGet 관리자를 사용하여 최신 Ninject, Ninject.MVC3 및 Ninject.Web.Mvc 라이브러리 (각각 2.1.0.91, 1.0.0.0 및 2.1.0.39)를 가져 왔습니다. 이제는 AppStart_NinjectMVC3 파일을 만듭니다.Ninject with MVC3 RTM

global.asax에서 NinjectHttpApplication을 제거하고 다시 일반 HttpApplication으로 만들었습니다. 내가 만들려고 할 때, 나는 얻는다.

내가 다음 줄을 사용하지 않으면, 더 보면 "호출 대상이 예외가 throw되었습니다";

DependencyResolver.SetResolver (new NinjectServiceLocator (kernel));

빌드가 완료됩니다. 하지만 저는이 일을하고 싶지 않습니다.

아이디어가 있으십니까?

----- UPDATE는 ---------

나는, 새로운 MVC3 프로젝트를 생성 Ninject.MVC3에 대한 참조를 추가하고이 빌드와 잘 실행됩니다. web.config를 비교해 보았는데, 두 가지의 Ninject 또는 MVC와 관련된 차이는 보이지 않습니다. 신선한 프로젝트는 Ninject.Web.Mvc 라이브러리를 추가하지 않으므로 제거하고 관련된 모든 코드를 주석 처리했습니다. 여전히 오류가 발생합니다.

+0

런타임 또는 컴파일 타임 오류가 발생합니까? –

답변

1

ASP.NET MVC 3 Beta 이후 IServiceLocator 인터페이스 is replacedIDependencyResolver입니다. Ninject.MVC3에는 이미이 인터페이스를 구현 한 릴리스가 있습니다.

라인 DependencyResolver.SetResolver(new NinjectServiceLocator(kernel))에서 판단하면 그렇지 않습니다.

Here's Ninject에 대한이 인터페이스의 간단한 구현.

UPDATE는 다음 Ninject.Web.Mvc 라이브러리는 IDependencyResolver 인터페이스에서 확장하는 NinjectDependencyResolver 클래스가 있습니다. 나는 당신이 이걸 사용해야한다고 생각합니다. (나는 잘합니다.) 여기에서

+0

ServiceLocator의 객체 브라우저를 보면 기본 유형이 IDependencyResolver로 표시됩니다. 예제 구현으로 로케이터를 교체했지만 동일한 문제가 발생했습니다. – Hammerstein

+0

변경 했는데도 문제가 계속 발생합니다. 그래서 이것은 구성 문제처럼 보입니다. 내가 시작한 샘플 프로젝트는 Ninject의 2.1.0.76이었고, Ninject.Web.Mvc와 Ninject.MVC3 1.0.0.0은 없었다. 이것은 잘 지어진다. 내 솔루션에있는 모든 프로젝트 2.1.0.91 있고, 다시 밖으로 스왑 시도했지만 행운을 빕니다. – Hammerstein

+0

Ninject 라이브러리가 이전 버전이 아닌 올바른 MVC 라이브러리 (버전 3 RTM)에 종속되어 있는지 확인할 수 있습니다. –