我有一個監視應用程序,通過WCF從其他應用程序接收處理更新。以前,被監控的應用程序有一個「更新」類來將數據發送到監控應用程序。現在我正在寫一個抽象基類,看起來像這樣WCF抽象基類及其子類上的DataContract
public abstract class Update
{
public readonly DateTime TimeStamp;
public readonly int AppId;
public Update()
{
TimeStamp = DateTime.Now;
AppId = SomeMethodThatCalculatesId();
}
private int SomeMethodThatCalculatesId()
{
// my calculations ...
}
}
下面是一個例子子類
public class ProcessUpdate : Update
{
public readonly string ProcessMessage;
public ProcessUpdate(string processMessage) : base()
{
if (string.IsNullOrEmpty(processMessage))
{
throw new ArgumentNullException("processMessage");
}
ProcessMessage = processMessage;
}
}
我希望能夠發送從Update
衍生監控應用程式內容,並要防止更新從被實例化,這就是爲什麼它是抽象的。我想爲我的AppId生成和派生類的一個實現不擔心或改變它,這就是爲什麼AppId是隻讀的。
是否Update
需要DataContract
屬性標記,或者只需要我的子?如果是這樣的話,我還可以裝點TimeStamp
和AppId
與DataMemeber
沒有DataContract
和監控應用程序仍然可以訪問這些屬性?
好吧,如果我得到這個權利,Update和ProcessUpdate需要DataContract。雖然IUpdate在其屬性上需要DataMember。那是對的嗎? – jlafay 2011-04-08 19:45:36
或者我可以用DataContract裝飾ProcessUpdate,因爲Update永遠不會通過電線。 – jlafay 2011-04-08 19:51:05