问题描述
是否可以将属性添加到与字符串值同名的ExpandoObject中?
Is there a way to add a property to an ExpandoObject with the same name as a string value?
例如,如果我有:
string propName = "ProductNumber";
dynamic obj = new System.Dynamic.ExpandoObject();
我可以创建属性ProductNumber,例如:
I can create the property ProductNumber like:
obj.ProductNumber = 123;
但是,我可以基于字符串propName
创建属性obj.ProductNumber
吗?因此,如果我不知道该属性的高级名称,则可以基于此输入来创建它.如果ExpandoObject无法做到这一点,我应该研究C#的其他任何领域吗?
But, can I create the property obj.ProductNumber
based on the string propName
? So, if I don't know what the name of the property will be in advanced, I can create it based on this input. If this is not possible with ExpandoObject, any other areas of C# I should look into?
推荐答案
ExpandoObject实现IDictionary<string, object>
:
ExpandoObject implements IDictionary<string, object>
:
((IDictionary<string, object>)obj)[propName] = propValue
我不知道您是否可以在dynamic
引用中使用索引器语法(即,不使用强制转换),但是您当然可以尝试并找出来.
I don't know off the top of my head whether you can use the indexer syntax with a dynamic
reference (i.e., without the cast), but you can certainly try it and find out.
这篇关于将属性添加到ExpandoObject中,其名称与字符串相同的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!