Ngay bây giờ tôi có một lớp cơ sở cho các trang kế thừa System.Web.UI.Page
và một lớp cơ sở khác cho các liên kết người dùng kế thừa System.Web.UI.UserControl
, các lớp này chứa cùng phương pháp. Vì C# không hỗ trợ đa kế thừa nên tôi không thể kết hợp hai lớp thành một thừa hưởng cả Trang và UserControl.Lớp cơ sở chung cho các liên kết người dùng và các trang trong ASP.NET
Cách nào tốt nhất để giữ chức năng trong hai lớp cơ sở nhưng chỉ thực hiện các phương pháp này ở một nơi?
Tôi đang nghĩ đến việc tạo một giao diện và để cho hai lớp cơ sở gọi một lớp thứ ba có chứa việc triển khai giao diện. Có cách nào tốt hơn để khi tôi thêm một phương pháp mới tôi không phải làm điều đó ở ba nơi (mặc dù việc thực hiện chỉ trong lớp thứ ba).
Có bất cứ lý do bạn không chỉ tạo ra một lớp helper mà chấp nhận một HttpContext trong các nhà xây dựng? Điều này sẽ cho bạn khả năng làm những việc như nhìn vào chuỗi truy vấn và thực hiện Response.Redirects. – nizmow
Câu hỏi ban đầu là về httpContext, đó là về mã tùy chỉnh trong các lớp cơ sở trang (một trường hợp sử dụng phổ biến) là DRY giữa các trang và các điều khiển của người dùng. Nó khá có khả năng các phương pháp được đề cập là cụ thể cho logic nghiệp vụ và không có gì để làm với bối cảnh http. –