1

正如我在标题中问的那样,

是否可以从数据库或 C# 中的外部值设置动态创建的属性名称?

如果是,那怎么办?

4

1 回答 1

2

通常,处理此问题的最佳方法是将值存储在 a Dictionary<string, object>(或什至Dictionary<string, dynamic>,或其他一些类作为值)中。这为您提供了一种使用“动态属性名称”(键)和值的方法。

虽然自定义DynamicObject将允许您在运行时基于外部源添加动态成员,但使用这些属性会出现问题,因为您不知道如何从代码中引用它们。

编辑:代码示例:

Dictionary<string, object> myValues = new Dictionary<string, object>();
myValues.Add("FieldName", "valueFromDatabase");
//to get value back
object val = myValues["FieldName"];
//or if not sure value exists
if (myValues.TryGetValue("FieldName", out val))
{
    //do something with val
}    
于 2012-08-30T01:32:53.287 回答