2012-10-06 40 views
6

Tôi hiện đang sử dụng ninject.mvc3 trong dự án asp.net webapi của mình và nó hoạt động tốt. Tôi hiện đang cố gắng ràng buộc các thuộc tính lọc, nhưng thiếu BindFilterBindHttpFilter từ giao diện IKernel khi sử dụng phương thức lớp tĩnh NinjectWebCommon. Nếu tôi thêm gói Ninject.Web.WebApi, nó ở đó nhưng dự án không chạy (vấn đề here, giải pháp nói rằng Ninject.Web.WebApi không được chấp nhận) vì vậy tôi đã xóa nó lại.Sử dụng Ninject để Liên kết Thuộc tính Lọc WebApi

Tôi cũng đã theo dõi này github wiki chính xác và vẫn còn this.BindFilter không được tìm thấy. Tôi có các gói nuget mới nhất; Ninject (3.0.1.10), Ninject.Web.Common (3.0.0.7), Ninject.MVC3 (3.0.0.6)

Trường hợp là BindFilter hoặc BindHttpFilter? Đã có điều gì đó thay đổi? Làm cách nào để liên kết các thuộc tính lọc trong api web asp.net? Có rất nhiều thư viện và dự án và tài liệu không cho bạn biết địa chỉ hiện tại đang hoạt động và những gì không được chấp nhận.

Trả lời

4

Các gói bạn đang sử dụng là chính xác bởi chúng chưa bao gồm BindHttpFilter. Phương thức mở rộng BindHttpFilter là từ https://github.com/remogloor/Ninject.Web.WebApi hiện không hoạt động đối với phiên bản phát hành của WebApi vì nó được viết dựa trên phiên bản beta WebApi. Để tiêm vào bộ lọc WebApi bạn cần BindHttpFilter, bạn không thể chuyển bộ lọc WebApi vào phương thức BindFilter.

Đây là https://github.com/ninject/Ninject.Web.WebApi/pull/1 có vẻ là thông tin mới nhất tôi có thể tìm thấy về trạng thái của bản cập nhật.

Bạn cũng có thể thử một gói NuGet khác http://nuget.org/packages/Ninject.Web.WebApi-rc nhưng tôi đã gặp một số lỗi với nó, không nhớ chính xác lỗi nào. Dù sao sau khi đọc phần thảo luận về yêu cầu kéo nêu trên, tôi đã từ bỏ gói này.

Trong trường hợp của tôi, tôi đang cố triển khai bộ lọc ghi nhật ký, vì vậy tôi sẽ tạo một phương thức tĩnh mà tôi có thể gọi từ bộ lọc cho tới khi có hỗ trợ tiêm.

4

Tôi có cùng một vấn đề. 1) Tôi cài đặt mới nhất (nhưng không ổn định) Ninject cho Web.Api từ PM console sử dụng lệnh

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

2) Sau đó tôi thêm video này vào "sử dụng" của NinjectWebCommon.cs

using Ninject.Web.WebApi.FilterBindingSyntax; 

Sau các bước này của tôi IKernel có phương thức BindHttpFilter. Và tất cả đều hoạt động tốt

+0

Điều này phù hợp với tôi, nhưng tôi tin rằng bạn có nghĩa là NinjectWebCommon.cs – friggle

+0

@friggle vâng, tất nhiên! –

Các vấn đề liên quan