Thực hiện kịch bản sau đây. Tôi có nhiều trang ASPX. Đăng nhập, đăng xuất, chính, tin nhắn, vv ... Tất cả họ đều được thừa hưởng từ System.Web.UI.Page tất nhiên. Đối với tất cả các trang, tôi muốn ghi đè phương thức Render từ lớp Page. Tôi có thể dễ dàng sao chép và dán cùng một mã vào mỗi trang như vậy:Cách ghi đè cùng một chức năng trên nhiều trang ASP.NET (Render Function)
protected override void Render(HtmlTextWriter writer)
{
//Code Logic Here
}
Nhưng nếu tôi có nhiều trang, hãy bảo đảm mã trong mỗi trang có thể mất nhiều thời gian và dễ bị lỗi.
Điều đó khiến tôi suy nghĩ một chút và tôi nghĩ không sao cho phép thử điều này ... ghi đè lên hàm trong mỗi trang nhưng gọi hàm tĩnh. Bằng cách đó, việc thay đổi chức năng tĩnh sẽ dẫn đến thay đổi cho mỗi trang. Mà làm việc tốt ... Nhưng nó không thực sự tốt đẹp và sạch sẽ, phải ghi đè như thế trên mỗi trang duy nhất. Có ai có ý tưởng hay suy nghĩ về cái này không? Có lẽ một cái gì đó đơn giản tôi nhìn ra? Cảm ơn
EDIT: Một số trang sử dụng lớp System.Web.UI.Page và một số trang được kế thừa từ một lớp khác có tên là ModifiedPage thừa hưởng và ghi đè các chức năng khác của lớp System.Web.UI.Page. Vì vậy, nó không đơn giản như kế thừa tất cả các trang từ một lớp.
EDIT2: Tất cả các trang cần hành vi này, một số đã xuất phát từ một lớp khác và tôi không thể thay đổi cách triển khai hoặc phân cấp thừa kế của lớp khác.
sử dụng lớp cơ sở được thừa kế từ System.Web.UI.Trang và sau đó sử dụng nó cho tất cả các trang của bạn –
EDIT: Một số trang sử dụng lớp System.Web.UI.Page và một số trang kế thừa từ một lớp khác có tên là ModifiedPage thừa kế và ghi đè các hàm khác của lớp System.Web.UI.Page. Vì vậy, nó không đơn giản như kế thừa tất cả các trang từ một lớp. –
xem câu trả lời đã sửa đổi của tôi. –