压扁动态对象的简单方法是什么?

时间:2014-02-10 23:00:48

标签: c#

我有一个执行以下操作的ToJson方法:

public object ToJson()
{
    return new
        {
            attr = new
                {
                    id = ID,
                    entityID = EntityID,
                    rel = Type.GetDescription().ToLowerInvariant(),
                    additionalAttributes = AdditionalAttributes
                },
            data = new
                {
                    title = Title,
                    icon = IconPath
                }
        };
}

让AdditionalAttributes处于比其他属性更低的级别对我来说没有好处。我想将其属性展平为与id,entityID和rel。

相同的级别

例如,如果AdditionalAttributes是:

subcomponentNode.AdditionalAttributes = new
    {
        count = subcomponent.Count
    };

然后我希望attr包含id,entityID,rel和count。

我不期待任何冲突的属性名称。如果存在冲突,合并或忽略是可以的 - 无论哪种更容易支持。

这在C#中是一项微不足道的操作吗?我可以这样做,但感觉有点脏:

dynamic attr = AdditionalAttributes;
attr.id = ID;
attr.entityID = EntityID;
attr.rel = Type.GetDescription().ToLowerInvariant();

0 个答案:

没有答案