我試圖將一個命令對象序列化(以及後來的反序列化)爲一個字符串(最好使用JavaScriptSerializer)。我的代碼編譯,但是當我序列化我的命令對象時,它返回一個空的Json字符串,即「{}」。代碼如下所示。序列化/反序列化命令對象
其目的是序列化命令對象,將其放入隊列中,然後將其反序列化,以便可以執行。如果可以用.NET 4實現解決方案,那麼情況會更好。
的ICommand
public interface ICommand
{
void Execute();
}
命令示例
public class DispatchForumPostCommand : ICommand
{
private readonly ForumPostEntity _forumPostEntity;
public DispatchForumPostCommand(ForumPostEntity forumPostEntity)
{
_forumPostEntity = forumPostEntity;
}
public void Execute()
{
_forumPostEntity.Dispatch();
}
}
實體
public class ForumPostEntity : TableEntity
{
public string FromEmailAddress { get; set; }
public string Message { get; set; }
public ForumPostEntity()
{
PartitionKey = System.Guid.NewGuid().ToString();
RowKey = PartitionKey;
}
public void Dispatch()
{
}
}
空字符串例
public void Insert(ICommand command)
{
// ISSUE: This serialization returns an empty string "{}".
var commandAsString = command.Serialize();
}
序列化擴展方法
public static string Serialize(this object obj)
{
return new JavaScriptSerializer().Serialize(obj);
}
任何幫助,將不勝感激。
'ICommand'只包含一個方法。你期望的序列化結果是什麼? – andri 2013-03-07 09:23:39
您可能(儘管我沒有使用Java序列化程序)需要使用'[Serializable]'標記從'ICommand'繼承的類,並將該類中的每個屬性標記爲'XmlElement'。 – MoonKnight 2013-03-07 09:25:56
DispatchForumPostCommand或從ICommand繼承的另一個對象的字符串表示形式。將對象從隊列中取出並反序列化後,我想將其稱爲Execute命令,其中包含一些基本信息以幫助完成執行。 – Bern 2013-03-07 09:28:15