我有一个与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