具有一个要序列化的属性的TableServiceEntity子类

本文关键字:属性 子类 TableServiceEntity 序列化 有一个 具有一 | 更新日期: 2023-09-27 18:13:49

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

我希望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. 这样做的最佳方法是什么?:)

谢谢!

具有一个要序列化的属性的TableServiceEntity子类

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