正如我在标题处所说的那样,
是否可以从数据库或C#中的外部值设置动态创建的属性名称?
如果是,那么如何?
答案 0 :(得分:2)
通常,处理此问题的最佳方法是将值存储在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
}