小编Gys*_*yer的帖子

每当调用属性时调用方法

有没有办法向类添加一个属性或类似的东西,每当调用该类的属性时,将调用一个方法?

基本上我有包含数据行的类,而不是像以下那样访问单个列:(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);
        }
    }
Run Code Online (Sandbox Code Playgroud)

上面提到的方法的问题是,如果我有一个包含10个属性的类,那么所有这些属性都将在其中使用上面的代码片段.

下面的代码示例包含上面代码片段的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;
}
Run Code Online (Sandbox Code Playgroud)

c# reflection attributes dynamic

5
推荐指数
1
解决办法
77
查看次数

标签 统计

attributes ×1

c# ×1

dynamic ×1

reflection ×1