Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从名称/值对目录动态创建对象属性?_C#_Asp.net Mvc - Fatal编程技术网

C# 从名称/值对目录动态创建对象属性?

C# 从名称/值对目录动态创建对象属性?,c#,asp.net-mvc,C#,Asp.net Mvc,我有一个DB“设置”表,如下所示: MopedID、名称、值 我想在我的基本控制器中创建一个对象,该对象由存储在那里的任何对象的属性填充 因此,如果是: 32,“EnableHyperCanon”,“真” 当我从从基继承的任何控制器访问运行时的对象时,该对象将有权访问MopedSettings.enablephypercanon,它将是字符串值“True” 该对象将只具有它为ID 32找到的属性 有什么想法吗 编辑:也许更好的方法是MopedSettings[“EnableHyperCanon”

我有一个DB“设置”表,如下所示:

MopedID、名称、值

我想在我的基本控制器中创建一个对象,该对象由存储在那里的任何对象的属性填充

因此,如果是:

32,“EnableHyperCanon”,“真”

当我从从基继承的任何控制器访问运行时的对象时,该对象将有权访问MopedSettings.enablephypercanon,它将是字符串值“True”

该对象将只具有它为ID 32找到的属性

有什么想法吗


编辑:也许更好的方法是MopedSettings[“EnableHyperCanon”]有没有一种方法可以创建这样的对象?

如果您运行的是.NET 4.0,您可以使用。

使对象可索引:

class MopedSettings
{
    private Dictionary<string,object> _dic;
    public object this[string s] { get { return _dic[s]; }; set { _dic[s] = value; } }
}
class-MopedSettings
{
私人词典;
公共对象此[string s]{get{return{u dic[s];};set{u dic[s]=value;}
}

我希望这能有所帮助。

奇怪的是,我在尝试填充此对象的实例时遇到一个对象引用为null的错误:List allSettings=(从db.CompanySettings中的cs开始,其中cs.CompanyID==company.CompanyID选择cs)。ToList(); foreach(CompanySetting cs in allSettings){companySettings[cs.Name]=cs.Value;}是的,您必须初始化字典(
\u dic=new Dictionary();
),并且不需要在
get{}
语句后面加分号。