Tôi đang xây dựng một ứng dụng gần giống với mẫu kho chứa với một lớp dịch vụ ở trên cùng, tương tự như các phiên bản đầu của Cửa hàng MVC của Conery.Lớp dịch vụ có quyền truy cập vào HttpContext không?
Tôi cần triển khai trang trả về tất cả người dùng ngoại trừ người dùng hiện tại. Tôi đã có GetUsers() phương pháp trên các kho lưu trữ và các lớp dịch vụ, do đó, câu hỏi là nơi để áp dụng "ngoại trừ người dùng hiện tại."
Lớp dịch vụ có nên biết HttpContext không, do đó áp dụng quy tắc này? Tôi chỉ muốn chuyển người dùng hiện tại (id) từ bộ điều khiển đến phương thức dịch vụ này, nhưng nó có vẻ sạch hơn nếu lớp dịch vụ là HttpContext-aware và có thể tự làm điều này.
Một thay thế rõ ràng là áp dụng quy tắc này trực tiếp trong Controller, nhưng tôi chỉ không nóng trên ý tưởng rằng ...
Edit - chỉ bình luận về câu trả lời: Tôi thấy vấn đề với vấn đề phụ thuộc ngược lại, một cái gì đó tôi đã hoàn toàn nhìn ra. Tôi đánh dấu Mehrdad là câu trả lời đúng hạn, nhưng mọi người đã thực sự cung cấp một phản hồi có giá trị đáng đọc!
Có gì sai khi chỉ cần chuyển Id người dùng? –
Không có gì sai với nó cả, tôi giống như xử lý tất cả các tình huống nhận thức ngữ cảnh theo cùng một cách. – JonoW
Tôi thích ý tưởng này, JonoW! Tôi chỉ có thể vượt qua các id cho bây giờ, nếu/khi phương pháp dịch vụ của tôi bắt đầu nhận được xấu xí với params và quá tải này sẽ là tuyệt vời. Tôi thậm chí có thể vượt qua AppContext khi instantiating đối tượng dịch vụ, do đó thực hiện mong muốn của tôi để có dịch vụ phần nào "nhận thức" nhưng không phụ thuộc vào System.Web. –