动态对象匿名类型Azure DynamicTableEntity

时间:2015-05-16 02:49:33

标签: c# wpf azure datagrid anonymous-class

所以我正在使用wpf进行练习并从azure表中获取数据,但我使用DynamicTableEnity来查询cloudtableclient。尝试将返回到可以在WPF的Datagrid中显示的对象的结果转换为一个大问题。

这需要一个对象列表,我不知道哪个对象返回但是我拥有DynamicTableEnity的所有数据。所以我的第一个黑客就是如下。

List<dynamic> dynamicList = new List<dynamic>();
foreach (var entry in tableStorageEntry)
{
    var dictionaryObject = AzureConversionHelper.Converstion(entry);
    var json = new JavaScriptSerializer().Serialize(dictionaryObject);
    dynamic foo = JObject.Parse(json);
    dynamicList.Add(foo);
}

public static object Converstion(DynamicTableEntity entity)
{
    var dictionary = new Dictionary<string, object>();

    dictionary.Add("PartitionKey", entity.PartitionKey);
    dictionary.Add("RowKey", entity.RowKey);
    dictionary.Add("TimeStamp", entity.Timestamp.ToString());

    foreach (var prop in entity.Properties)
    {
        dictionary.Add(prop.Key, prop.Value.PropertyAsObject);
    }

    return dictionary;
}

我不知道自己在做什么,这是一场艰苦的斗争,因为我对匿名对象的工作并不多。我的hack是将属性转换为字符串字典,将它们转换为json字符串,然后将它们解析回动态对象。 。 。 。 。这听起来真的很糟糕,即使在我脑海中,但是在对匿名类型的文章进行了几个小时之后,我提出了这个想法。

这给了它多么可怕的工作,所以它对我来说是一个开始,但当我拉下大量数据时它变成了一个真正的问题,而且由于我几乎要做三重阅读,这使得任务变得非常痛苦通过数据。任何人都可以指出一个更好的方法,或者可能指出如何更好地解决这个问题。

0 个答案:

没有答案