Helpex - Trao đổi & giúp đỡ Đăng nhập
5

Làm cách nào để truy cập chuỗi truy vấn từ một WebAPI MVC tự lưu trữ?

Gọi đến phần sau không thành công với NRE, vì Dòng điện trống (còn gọi là. Null)

System.Web.HttpContext.Current.Request["myQuery"]

Tôi cần quyền truy cập vào ngữ cảnh hiện tại bên ngoài bộ điều khiển, vì tôi muốn kiểm soát việc khởi tạo đối tượng của mình thông qua. DI. ví dụ.

        container
            .RegisterType<MyObject>(
                new InjectionFactory(
                    uc =>
                        new MyObject(
                            System.Web.HttpContext.Current.Request["myParam"]) //This failed.
                    ));

Gọi đến container.Resolve<MyObject>()từ bên trong mã ControllerApi không thành công do NRE ở trên.

5 hữu ích 5 bình luận 22k xem chia sẻ
11

Bạn thực sự không nên sử dụng System.Web.HttpContext.Currenttrong API Web. Nó chỉ hợp lệ khi sử dụng Máy chủ lưu trữ web và thực sự chỉ ở đó vì những lý do kế thừa. Thông tin bối cảnh được giấu trong HttpRequestMessage.Propertiesbộ sưu tập.

Một trong những cách mà Web API cải thiện khả năng kiểm tra là bằng cách loại bỏ sự phụ thuộc của nó vào các thuộc tính tĩnh.

Có nhiều cách để giải quyết các cá thể và truyền tham số. Xem câu hỏi này Khối ứng dụng Unity, Làm thế nào để truyền một tham số cho Injection Factory?

11 hữu ích 0 bình luận chia sẻ
6

HttpContext.Current không khả dụng trong các dự án tự lưu trữ

xem: HttpSelfHostServer và HttpContext.Current

6 hữu ích 1 bình luận chia sẻ
loading
Không tìm thấy câu trả lời bạn tìm kiếm? Duyệt qua các câu hỏi được gắn thẻ c# asp.net mvc asp.net-mvc-4 asp.net-web-api , hoặc hỏi câu hỏi của bạn.

Có thể bạn quan tâm

loading