2012-10-06 2 views
6

현재 asp.net webapi 프로젝트에서 ninject.mvc3을 사용하고 있으며 정상적으로 작동합니다. 이제 필터 속성을 바인딩하려고 시도하지만 NinjectWebCommon 정적 클래스 메서드를 사용하면 IKernel 인터페이스에서 BindFilterBindHttpFilter 인터페이스가 누락되었습니다. Ninject.Web.WebApi 패키지를 추가하면 프로젝트가 실행되지 않습니다 (문제 here, 솔루션에 Ninject.Web.WebApi이 사용 중지됨). 다시 제거했습니다.Ninject를 사용하여 WebApi 필터 속성을 바인딩

나는 또한이 github wiki을 따라 갔으며 정확히 this.BindFilter는 찾을 수 없습니다. 나는 최신 nuget 패키지를 가지고있다; Ninject.Web.Common (3.0.0.7), Ninject.MVC3 (3.0.0.6)

BindFilter 또는 BindHttpFilter는 어디에 있습니까? 뭔가 변화가 있었습니까? 어떻게 asp.net 웹 API에서 필터 속성을 바인딩합니까? 라이브러리 및 프로젝트가 너무 많아서 현재 작업중인 것이 무엇이며 사용되지 않는 것은 무엇인지 알려주지 않습니다.

답변

4

BindHttpFilter를 사용하지 않아서 사용중인 패키지가 정확합니다. BindHttpFilter 확장 메서드는 베타 WebApi 버전에 대해 작성된 WebApi의 릴리스 버전에서 현재 작동하지 않는 https://github.com/remogloor/Ninject.Web.WebApi에서 제공됩니다. BindHttpFilter가 필요한 WebApi 필터에 삽입하려면 BindFilter 메서드에 WebApi 필터를 전달할 수 없습니다.

이것은 https://github.com/ninject/Ninject.Web.WebApi/pull/1입니다. 업데이트 상태에서 확인할 수있는 최신 정보 인 것 같습니다.

다른 NuGet 패키지 http://nuget.org/packages/Ninject.Web.WebApi-rc을 사용해 볼 수도 있지만 오류가 있습니다. 정확히 어떤 오류가 발생했는지 기억하지 못합니다. 어쨌든 위에서 언급 한 요청에 대한 토론을 읽은 후에이 패키지를 포기했습니다.

제 경우에는 로깅 필터를 구현하려고합니다. 그래야 주입 지원을 사용할 수있을 때까지 필터에서 호출 할 수있는 정적 메서드를 만들려고합니다.

4

동일한 문제가 있습니다. 1) 나는 그런 내가이

using Ninject.Web.WebApi.FilterBindingSyntax; 

후 NinjectWebCommon.cs

의 섹션을 "사용"에 추가) 오후 콘솔에서 Web.Api에 대한 Ninject에) 최신 (그러나 불안정한 명령

PM> Install-Package Ninject.Web.WebApi -Pre 

2를 사용하여 설치 이 단계에서는 IKernel에 BindHttpFilter 메서드가 있습니다. 그리고 모두 잘 작동합니다

+0

이것은 나를 위해 일했으나, 당신이 NinjectWebCommon.cs을 의미한다고 생각합니다. – friggle

+0

물론 그렇습니다! –

관련 문제