动态添加属性到 ExpandoObject
我想在运行时动态地将属性添加到 ExpandoObject。因此,例如要添加一个字符串属性调用 NewProp 我想写类似这样的内容
var x = new ExpandoObject();
x.AddProperty("NewProp", System.String);
这很容易实现吗?
I would like to dynamically add properties to a ExpandoObject at runtime. So for example to add a string property call NewProp I would like to write something like
var x = new ExpandoObject();
x.AddProperty("NewProp", System.String);
Is this easily possible?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
或者:
Alternatively:
正如 Filip 所解释的 - http://www.filipekberg.se/2011/10/02/adding-properties-and-methods-to-an-expandoobject-dynamicly/
您也可以在运行时添加方法。
As explained here by Filip - http://www.filipekberg.se/2011/10/02/adding-properties-and-methods-to-an-expandoobject-dynamicly/
You can add a method too at runtime.
下面是一个示例帮助程序类,它转换一个对象并返回一个包含给定对象的所有公共属性的 Expando。
用法:
Here is a sample helper class which converts an Object and returns an Expando with all public properties of the given object.
Usage:
这是我找到的最好的解决方案。但要小心。使用异常处理,因为它可能不适用于所有情况
//您可能想要使用的另一个不错的扩展方法
This is the best solution I've found. But be careful with that. Use exception handling because it might not work on all of the cases
//another nice extension method you might want to use