我有一个执行以下操作的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();