是否可以在c#中从数据库设置动态创建的属性名称?

时间:2012-08-30 01:25:21

标签: c# c#-4.0 dynamic

正如我在标题处所说的那样,

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

如果是,那么如何?

1 个答案:

答案 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
}