C# 动态扩展一个对象

标签 c# reflection object dynamic

是否可以扩展现有对象?

我有密码

var record = new
{
    id,
    name
};

并有一个匿名对象列表

var list = new List<object>(){ object1, object2 };

我可以稍后将它们添加到对象中吗? 像某事一样

foreach (var o in list)
{
    record.add(o);
}

我会得到这个结果

var record = new
{
    id,
    name,
    object1,
    object2
};

最佳答案

简而言之,没有。至少,不是匿名类型。这里有两种方法; dynamic可能会给你你想要的,但对于组合来说是很繁琐的。除此之外,一个基本的属性(property)包——甚至是简单的Dictionary<string,object>会做。唯一的区别是:

obj.id

成为

obj["id"]

不过,还有一个更基本的问题,就是试图在一个步骤中将列表(每个列表基本上都是匿名的)与属性 结合起来。你可以做到这一点for data-binding purpose via custom property models ,但这……很棘手。

关于C# 动态扩展一个对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4735334/

相关文章:

c# - 字符串插入数据库时​​单引号转义

javascript - 视野中的黄色物体 - 三个 JS

Javascript:将单引号附加到单个对象结果中

c# - 不使用 CS0200 替换字典值

c# - 基于 XSD 创建表单生成 XML 的智能方式

c# - Winforms Propertygrid 中的验证

java - 如何改进下面的方法逻辑?

go - 打印Golang map 的键/值类型

c# - GetType() 和 GetTypes() 等反射 API 的性能如何?

java - 如何在 java 中打印/记录字符串数组?