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

C# 升级到Microsoft.WindowsAzure.Storage 4.0.0后未正确序列化表实体,c#,azure,serialization,asp.net-web-api,azure-storage,C#,Azure,Serialization,Asp.net Web Api,Azure Storage,我有一个C#.NETWebAPI项目,它与Azure表存储一起工作。有些方法返回各种表实体的列表。在我升级到Microsoft.WindowsAzure.Storage 4.0.0之前,一切正常。现在只返回基本属性(PartitionKey、RowKey、Timestamp和ETag),而忽略我自己的自定义属性,即未序列化 我注意到,在中有一个条目似乎与此有关: 表:TableEntity可通过ISerializable接口序列化 对此,我尝试用[Serializable]装饰我的表实体类,

我有一个C#.NETWebAPI项目,它与Azure表存储一起工作。有些方法返回各种表实体的列表。在我升级到Microsoft.WindowsAzure.Storage 4.0.0之前,一切正常。现在只返回基本属性(PartitionKey、RowKey、Timestamp和ETag),而忽略我自己的自定义属性,即未序列化

我注意到,在中有一个条目似乎与此有关:

  • 表: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; }
}
但是,只返回基本属性和我的自定义属性(名称、ShortName和LicenseGuid),而不包括在Web API方法的JSON响应中


有什么想法吗?(我现在回到Microsoft.WindowsAzure.Storage 3.2.1)

此问题已在我们的最新版本中得到解决,您可以从这里获取-

感谢您关注此问题。我将看看是否可以创建一个简单的测试用例。但我的应用程序从正常工作到完全不工作,只是更新了这个版本的Microsoft.WindowsAzure.Storage,并且在我回到3.2.1后又恢复了正常工作。我很确定WebAPI2.1没有正确序列化任何包含TableEntities的响应。我也遇到了这个(似乎)确切的问题。但是,我会暂缓提供代码,直到我能确认这不是我这边的一个细微错误。我还没有尝试最新的,但是变更日志说“TableEntity不支持对象序列化。如果实体需要序列化逻辑,请直接在实体类中实现ITableEntity接口和序列化逻辑。”那么,当你说它已经修好了,你是什么意思?TableEntity序列化现在是否与以前的版本(如3.2.1)一样工作?是的。它的工作原理与以前的版本相同。WebApi的JSON序列化程序应该能够很好地序列化数据。请尝试一下,如果您遇到任何问题,请告诉我们。我可以确认,4.0.1软件包运行良好,没有任何更改。我刚刚通过NuGet进行了更新,它的工作原理与以前一样(至少对于我的简单应用程序)。谢谢你的修复!我刚开始测试Azure存储,遇到了同样的问题。明天我将尝试降级到3.2.1,看看这是否有帮助。如果可行,我可以创建一个简单的示例应用程序,根据下面的答案发送到“veudayab”。我可以确认,在降级到3.2.1后,我的所有属性也已正确序列化。我正在使用最新的Web Api 2.1(版本5.1.2)。在将库更新到版本4.0后,我遇到了完全相同的问题。