c# – 升级到Microsoft.WindowsAzure.Storage 4.0.0后,表实体未正确序列化

我有一个与Azure表存储一起使用的C#.NET Web API项目.一些方法返回各种表实体的列表.直到我升级到Microsoft.
WindowsAzure.Storage 4.0.0,一切正常.现在只返回基本属性(PartitionKey,RowKey,Timestamp和ETag),并忽略我自己的自定义属性,即未序列化.

我注意到在change log for Microsoft.WindowsAzure.Storage 4.0.0中有一个条目似乎可能与此有关:

>表:TableEntity可通过ISerializable接口进行序列化.

为此,我尝试使用[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)

最佳答案 此问题现已在我们最新版本中修复,您可以从此处获取 –
http://www.nuget.org/packages/WindowsAzure.Storage

点赞