【发布时间】:2018-10-16 20:45:14
【问题描述】:
有没有办法给一个类添加一个属性或一些东西,每当该类的属性被调用时,一个方法就会被调用?
基本上我有包含数据行的类,而不是访问单个列,例如:(DataRow["some_column_name"]) 我想使用属性访问它们,而不是:(MyClass.some_column_name)。
我目前的工作是使用反射来动态传递列名作为参数,如下所示:
public string some_column_name
{
get
{
return (string)GetValue(MethodBase.GetCurrentMethod().Name);
}
set
{
SetValue(MethodBase.GetCurrentMethod().Name, value);
}
}
上述方法的问题是,如果我有一个包含 10 个属性的类,所有这些属性都会在其中包含上述代码 sn-p 使类膨胀。
下面的代码示例包含上面代码sn-p的get和set value方法,这些方法将在基类中:
private DataRow some_table;
protected object GetValue(string columnName)
{
return some_table[columnName.Substring(columnName.IndexOf('_') + 1)];
}
protected object SetValue(string columnName, object value)
{
return some_table[columnName.Substring(columnName.IndexOf('_') + 1)] = value;
}
【问题讨论】:
标签: c# dynamic reflection attributes