我有一個創建的HTTP類,如果可能,每次調用HTTP.post()或HTTP.get()時都會附加一個方法。我希望能夠在之前或之後附加活動。將事件添加到方法
我看到這是在很多Web框架(如Wordpress和Symfony)中完成的,但我想在我的WinForms應用程序上做類似的事情。
我在尋找什麼樣的設計模式來達到這個目的,所以我可以去谷歌它。
我有一個創建的HTTP類,如果可能,每次調用HTTP.post()或HTTP.get()時都會附加一個方法。我希望能夠在之前或之後附加活動。將事件添加到方法
我看到這是在很多Web框架(如Wordpress和Symfony)中完成的,但我想在我的WinForms應用程序上做類似的事情。
我在尋找什麼樣的設計模式來達到這個目的,所以我可以去谷歌它。
您可以在您的對象上創建事件並從代碼中的任何位置調用它們。我經常這樣做。
public event EventHandler Getting;
public event EventHandler Setting;
void get()
{
if (Getting != null)
Getting.Invoke(this, EventArgs.Empty);
}
void post()
{
if (Setting != null)
Setting.Invoke(this, EventArgs.Empty);
}
那麼其他類可以處理這些事件是這樣的:
myHttp.Getting += myHttp_Getting;
public void myHttp_Getting(object sender, EventArgs e)
{
}
編輯:
你也可以調用事件是這樣的:
void post()
{
if (Setting != null)
Setting(this, EventArgs.Empty);
}
你只能從它自己的clas中調用一個事件秒。這不是問題,因爲否則會導致代碼混亂。總是檢查它是否爲空,因爲如果沒有訂戶,它將爲空,並且在調用它時將通過NullReferenceException
。
你只是想通過代碼添加事件嗎? http://msdn.microsoft.com/en-us/library/ms743596.aspx –
@JoeKorolewicz是的。我會立即檢查你的鏈接。 –
@JoeKorolewicz我檢查了鏈接。我知道這樣附加方法。如示例中的按鈕,已經有事件處理程序。我想要做的事情是將事件處理程序構建到我的HTTP類中,以便在HTTP請求之前和/或之後附加事件。 –