升级到Microsoft.WindowsAzure.Storage 4.0.0后,表实体没有被正确序列化

本文关键字:实体 序列化 Microsoft WindowsAzure Storage | 更新日期: 2023-09-27 18:03:16

我有一个c#。使用Azure表存储的。NET Web API项目。有些方法返回各种表实体的列表。在我升级到Microsoft.WindowsAzure.Storage 4.0.0之前,一切都很好。现在只返回基本属性(PartitionKey, RowKey,Timestamp和ETag),而忽略我自己的自定义属性,即不序列化。

我注意到在Microsoft.WindowsAzure.Storage 4.0.0的更改日志中有一个条目似乎与此有关:

  • Tables: TableEntity可以通过isserializable接口序列化。

在响应这个我尝试装饰我的表实体类与[Serializable]和我的自定义属性与[DataMember]。一个例子:

[Serializable]
public class UserGroup : TableEntity
{
    public UserGroup(String PartitionKey, String RowKey)
        : base(PartitionKey, RowKey)
    {
        this.PartitionKey = PartitionKey;
        this.RowKey = RowKey;
    }
    public UserGroup()
    {
    }
    [DataMember]
    public String Name { get; set; }
    [DataMember]
    public String ShortName { get; set; }
    [DataMember]
    public String LicenseGuid { get; set; }
}

仍然,只返回基本属性和我的自定义属性(Name, ShortName和LicenseGuid),而不包含在来自Web API方法的JSON响应中。

任何想法?(我现在回到Microsoft.WindowsAzure.Storage 3.2.1)

升级到Microsoft.WindowsAzure.Storage 4.0.0后,表实体没有被正确序列化

此问题已在我们的最新版本中修复,您可以从这里获取- http://www.nuget.org/packages/WindowsAzure.Storage