【发布时间】:2020-05-09 15:23:27
【问题描述】:
我有一个 C# 中的字符串列表,我想遍历列表并将列表中的每个项目添加为我的类的属性。 例如:
public class test
{
List<string> inputList = new List<string> {"add", "subtract", "multiply"};
foreach(var val in inputList)
{
//code to convert string to property
}
}
运行上面的代码后,当我创建一个新的类测试对象时,我想得到: test.add 或 test.subtract 等,我应该能够为这些属性赋值。
这可能吗?如果是,有人可以建议最好的方法吗?
从上面继续,这里的目的是添加 API。 这里的列表是动态加载的。我应该以更贴切的列表为例。
public class test
{
List<string> inputList = new List<string> {"name", "age", "dob"};
foreach(var val in inputList)
{
//code to convert string to property of the class test
}
}
代码运行后,我应该能够将值分配给用户输入的姓名、年龄和出生日期,即
test.name = "blah"
test.age = "123"
由于列表是动态更新的,列表中的项目(及其数量)会有所不同。列表中的所有项目都必须作为类测试的属性添加,并且用户应该能够在运行时为这些属性分配值。
【问题讨论】:
-
您能否展示您想要创建的实际数据结构?您是否有要动态设置其属性的类?或者这是像
Dictionary这样的一些内存中的类似键值的数据结构? -
看看
ExpandoObject和DynamicObject -
@SaniSinghHuttunen 我不希望在运行时创建一个新类。相反,我想在运行时通过向其添加属性来扩展现有类(在本例中为测试)。
-
@HimBromBeere 我确实有一个类,我想为其动态创建属性,然后允许用户为这些属性设置值。
标签: c# string dynamic properties