2009-03-17 19 views
5

Tôi tự hỏi liệu có cách nào để tự động lưu trữ trong trình xử lý sự kiện của Global.asax không? Cho đến nay, tôi đã không thể tìm thấy bất kỳ ví dụ về làm thế nào để làm điều này. Dường như tôi phải tìm danh sách tên đại biểu có sẵn cho tôi và nhập chúng theo cách thủ công.Đấu dây sự kiện tự động trong Global.asax

Intellisense dường như không cho vay bất kỳ thông tin hữu ích nào về chủ đề này.

Trả lời

7

Thời gian chạy ASP.Net sử dụng phản chiếu để tìm kiếm động các phương thức có tên như "Application_Start", "Session_Start" vv và sau đó liên kết chúng với các sự kiện tương ứng trên lớp HttpApplication. Bạn có thể liên kết hiệu quả với bất kỳ sự kiện HttpApplication nào đơn giản bằng cách bao gồm một phương thức trong Global.asax.cs có tên là "Application_" theo sau là tên của sự kiện. Ví dụ, để sử dụng các sự kiện EndRequest, thêm video này vào tập tin Global.asax.cs của bạn:

protected void Application_EndRequest(object sender, EventArgs e) 
    { 
     // Your code here 
    } 

Xem Blog Entry này từ Rick Strahl cho một loạt các thông tin hữu ích về cách này được thực hiện.

+0

Thành thật mà nói, tất cả các khái niệm OOPS của tôi đã được tung ra khi tôi nhìn thấy những phương thức này được gọi mà không cần ghi đè từ khóa. Phản ánh là người lái ma ở đây :-). Cảm ơn sự giác ngộ tuyệt vời này. Đơn giản là cực kỳ mát mẻ. Nhưng tôi đã tự hỏi mọi người thường nói rằng việc kiểm tra các loại thông qua phản ánh chậm và có thể là một hiệu suất hit ở đây. Ngoài ra tại sao nhóm asp.net chọn tuyến đường này để khởi tạo HttpApplication và móc các trình xử lý sự kiện thay vì một cách ghi đè ảo rõ ràng hơn. Đây là điều mà tôi muốn điều tra bây giờ. – RBT

0

Tôi không hiểu ý bạn là gì bởi "tự động khai báo" các trình xử lý sự kiện? Giống như gõ "ghi đè lên" và nhận được Intellisense nói những gì xử lý sự kiện có sẵn? Sợ rằng không có ...

Dưới đây là một liên kết cho thấy những gì avaialble, mặc dù:

không dường như có thể tìm thấy bất kỳ, danh sách đầy đủ dứt khoát bất cứ nơi nào, mặc dù: - (

Marc

+0

Phải ... như khi ghi đè hoặc trên tab Thuộc tính, người ta thường có thể chọn nút sự kiện để xem và tự động kết nối các đại biểu tham gia sự kiện bằng cách nhấp đúp. Một cái gì đó như thế hoặc một lựa chọn intellisense. Có danh sách ở khắp mọi nơi mô tả những phương pháp có thể được kết nối. Cảm ơn mặc dù. – Boydski

2

Tất cả các sự kiện của lớp HttpApplication có thể có một bộ xử lý trong toàn cầu. asax.

0

HttpApplication.Init method được gọi sau khi tất cả các đối tượng mô-đun đã được tạo và mỗi phương thức Init của chúng được gọi là cơ hội hoàn hảo để thiết lập trình xử lý sự kiện, khởi tạo biến thể của HttpModule? xử lý sự kiện wireup để lưu trữ HttpApplication.

tên phương thức trong asax Lớp là kết nối của giá trị thuộc tính tên được sử dụng để đăng ký mô-đun trong tệp Web.config, dấu gạch dưới và tên của sự kiện.

Các vấn đề liên quan