2010-10-31 49 views

回答

1

發送DateTime類型的消息對我來說似乎是個不好的主意......它不夠具體,它沒有任何意義。

想象一下,你會收到一封只包含日期的信件,而沒有其他信息:你會怎麼做?它是一個生日,電影的發行日期,支付電話費的截止日期?

日期(或字符串,或int,或任何基元類型)沒有上下文意味着什麼。您需要創建特定的消息類型,這是您發送的信息具有意義的唯一方式。

+0

好的托馬斯,這是我所做的。那麼你是否爲每發送一個新的日期時間創建一個新的帶有一個日期時間屬性的額外類? – Elisabeth 2010-10-31 23:43:05

+0

我爲每種特定類型的消息創建一個消息類,是的。 – 2010-11-01 00:49:46

+0

你把它命名爲消息類。這個班有什麼特別的嗎?或者它只是一個屬性日期時間的自定義類? – Elisabeth 2010-11-01 19:59:12

0

您可以使用標記對象發送消息,然後僅爲使用該特定標記發送的DateTime進行註冊。

我似乎記得Laruent創建一個類是這樣的:

public class Notifications 
{ 
     public static readonly String SystemDateChanged = Guid.NewGuid().ToString(); 
     public static readonly String SomeOtherDateChanged = Guid.NewGuid().ToString(); 
} 

然後發出消息

Messenger.Default.Send(newSystemDateTime, Notifications.SystemDateChanged); 

雙方感興趣的SystemDateTime(而不是其他日期時間)將它註冊

Messenger.Default.Register<DateTime>(this, Notifications.SystemDateChanged, true, 
d => { mydate = d; }); 
相關問題