我在Silverlight Business Application項目和一個域服務中有幾個視圖。RIA服務中的事件
從第一個角度來看,我希望能夠在服務上調用一個簡單的方法。 在服務上,我希望能夠在調用此方法時引發事件。在我的第二個視圖中,我想爲該服務上的此事件創建一個事件處理程序。
到目前爲止,我有這樣的服務
public class MyService: DomainService
{
public event EventHandler<EventArgs> MyEvent;
public void SimulateSomeAction()
{
if(MyEvent!= null)
{
MyEvent(this, EventArgs.Empty);
}
}
}
而在第一種觀點,我有
private void button1_Click(object sender, RoutedEventArgs e)
{
MyServiceContext context = new MyServiceContext();
context.SimulateSomeAction();
}
但對於第二種觀點,我沒有看到的事件被暴露被處理。如果這是錯誤的方法,這怎麼能實現呢?我正在尋找一些方法來更新由服務啓動的客戶端視圖。
編輯:
我提到的兩個意見將在不同的客戶端。基本上我正在通過域名服務尋找客戶端到客戶端的通信解決方案。如果試圖通過域名服務來做是一個壞主意或不可能,請建議我應該看什麼。
目前正在研究"Pushing Data to a Silverlight Client with a WCF Duplex Service",但如果RIA服務可能的話,會很喜歡它。
謝謝
片段相當準確。我已經用MyEvent等項目替換了實際的名稱,這就是RIA Domain服務的工作方式。您將功能添加到服務中,客戶端將上下文實例作爲代理。 – 2011-02-28 01:06:26
因此您在服務器項目中添加了該事件? – 2011-02-28 01:08:24
是的,這是正確的。 – 2011-02-28 01:09:48