2011-07-30 38 views
8

Tôi đang tìm cách thử và thêm một Protobuf ValueProviderFactory vào MVC3 để tôi có thể chọn loại MIME và deserialize dữ liệu thô thành các đối tượng cho các tham số hành động. Tôi cũng có thể sử dụng điều này để thay đổi bộ nối tiếp Json mặc định.Thêm ValueProviderFactories tùy chỉnh vào ASP.NET MVC3?

Nhìn vào JsonValueProviderFactory.cs điều này không quá khó, nhưng các nhà máy tất cả dường như được mã hóa cứng.

Đối với Protobuf tôi có thể làm điều gì đó với IValueProvider nhưng tôi thậm chí chưa kiểm tra xem MVC3 làm gì khi nó nhận được loại MIME là application/x-protobuf.

Tôi có thực hiện đúng cách này không?

CẬP NHẬT

tôi thấy this bài viết trên blog rằng cuộc đàm phán về việc tạo ra một IValueProvider. Sau đó nó đề cập ở phía dưới rằng điều này thay đổi xung quanh MCV2. Ông đã đổi thành số ValueProviderFactory và gọi:

ValueProviderFactories.Factories.Add(new HttpCookieValueProviderFactory()); 

Nhưng trong MVC3 thuộc tính này chỉ đọc.

+1

Thú vị. Tôi không biết MVC làm gì ở đây, vì vậy tôi sẽ theo dõi câu hỏi này với sự tò mò. –

Trả lời

2

Nó chỉ ra rằng nó không phải là chỉ đọc và bạn có thể thêm các nhà cung cấp như sau:

ValueProviderFactories.Factories.Add(new MyValueProviderFactory()); 

tôi sẽ biết điều này có Tôi đã kiểm tra bản thân mình!

Tôi đã thực hiện một số tìm kiếm khác hôm nay và this bài đăng trên blog dường như gợi ý rằng DependencyResolver sẽ tìm bất kỳ lớp nào kế thừa ValueProviderFactory. Tôi đang sử dụng MEF cho độ phân giải phụ thuộc vì vậy tôi chỉ có thể thêm một thuộc tính xuất khẩu và nó sẽ được chọn tự động.

Tôi hiện có further issue viết ValueProviderFactory tùy chỉnh cho protobuf-net.

+0

Bạn cũng có thể loại bỏ các nhà cung cấp giá trị nếu bạn muốn làm một cái gì đó như trao đổi nhà cung cấp giá trị json mặc định với một tùy chỉnh. – evanmcdonnal

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