Vì vậy, tôi có một trang web biểu mẫu web kế thừa và đang nỗ lực để duy trì dễ dàng hơn. Nhét nó đi và viết lại nó không phải là một lựa chọn.Tại sao tất cả mọi người nói tiêm phụ thuộc trong ASP.NET webforms là khó khăn khi PageHandlerFactory và IHttpHandlerFactory tồn tại?
IoC rõ ràng là một trong những điều đầu tiên nó nhận được, nhưng điều này khiến tôi với mẫu dịch vụ định vị và hương vị xấu, và tự hỏi liệu nó có thể được thực hiện tốt hơn hay không.
Những người khác nhau mà tôi đã nói chuyện trực tuyến và cho tôi biết rằng tôi có thể thực hiện việc tiêm bất động sản bằng một HttpModule quét lớp Trang cho các thuộc tính được trang trí với thuộc tính Tiêm hoặc tương tự, nhưng có vẻ như một lần phản chiếu (được lưu trong bộ nhớ cache) , nhưng vẫn) trên mọi yêu cầu. Không hấp dẫn.
Vì vậy, tôi đã xem xét các tùy chọn khác và đã xem qua số System.Web.IHttpHandlerFactory, điều này đã xuất hiện trong khuôn khổ kể từ phiên bản v2. Người ta có thể loại bỏ trình xử lý * .aspx mặc định và thay thế bằng trình xử lý sử dụng tùy chỉnh, trong phần httpHandlers web.config.
Vì vậy, những người tôi đã nói chuyện không câm; Tôi nghĩ tôi sẽ hỏi ở đây. Có bất kỳ gotchas nào thay thế các biểu mẫu web PageHandlerFactory bằng việc triển khai dựa trên IoC không ...?
Dường như nó có cả một CreateHandler và phương pháp ReleaseHandler, vì vậy phong cách sống liên quan đến rò rỉ bộ nhớ từ container giữ một tham chiếu đến các thành phần tạo ra không phải là một vấn đề ...