TableServiceEntity子类,其中一个属性要序列化

时间:2014-07-19 00:55:23

标签: c# asp.net-mvc-4 serialization json.net azure-table-storage

您好我正在使用C#设计一个名为Account的类,它继承自TableServiceEntity,因此我可以轻松地将帐户存储到Azure表存储中的帐户表中。

我希望Account类具有以下内容:

public Account : TableServiceEntity {
      // Constructor
      public Account() { }

      // Properties
      public string Name {get; set;}
      public List<string> FriendsList{get;set;}
}

对于存储,我有以下内容:

  TableServiceContext.AddObject(AccountTableName, newAccount);
  TableServiceContext.SaveChanges();

我的问题:

  1. 有没有办法序列化FriendsList并以JSON格式将其存储在表中,而无需再创建一个像FriendsListSerialized这样的字符串属性?通过属性或其他一些机制? 我更喜欢将Name存储为自己的属性,所以我不想将整个对象序列化为一个单独的字符串。

  2. 你能在一个属性上使用Newtonsoft.JsonConvert.SerializeObject吗?

  3. 这样做的最佳方法是什么? :)

  4. 谢谢!

1 个答案:

答案 0 :(得分:0)

我做了一些研究,最终发现TableServiceEntity是有限的,并且不能覆盖writeEntity和readEntity方法。但是,如果创建一个继承自TableEntity类的类,则可以非常灵活地修改writeEntity和readEntity方法。具体来说,可以将JSON序列化一个列表(或任何对象),然后将其存储到表存储中。将继承从TableSerivceEntity更改为TableEntity会稍微更改您的存储方法。它实际上比我想象的要容易。这是一个非常有用的页面。 http://gauravmantri.com/2012/11/17/storage-client-library-2-0-migrating-table-storage-code/ 希望能帮助人们像我一样长时间使用TableSerivceEntity。