有没有一种方法可以向类添加属性或其他内容,以便每当调用该类的属性时都会调用一个方法?
基本上,我有包含数据行的类,而不是像这样访问单个列:(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个属性,所有这些属性都将有上述代码片段膨胀该类。
以下代码示例包含上述代码片段的获取和设置值方法,这些方法将在基类中:
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;
}