在c#中动态调用方法

时间:2010-11-29 09:52:24

标签: c# dependency-injection ioc-container dynamic-method

我有很多实体类,现在在实体类的所有属性中都需要在getter和setter中添加新功能(调用某些方法)。我想说的是这样的:

public class PersistentClass : BaseClass {
private string attr1;
[Persistent]
public string Attr1 
{
    get
    {
        //need to call here base class method
        //refreshContents();
        return attr1;
    }
    set
    {
        //need to call here base class method
        //refreshContents();
        attr1 = value;
    }
}

private SomeObject attr2;
[Persistent]
public SomeObject Attr2
{
    get
    {
        //need to call here base class method
        //refreshContents();
        return attr2;
    }
    set
    {
        //need to call here base class method
        //refreshContents();
        attr2 = value;
    }
}

private List<SomeOtherObhect> details;
[Persistent]
pubic List<SomeOtherObject> Details
{
    get
    {
        //need to call here base class method
        //refreshContents("details");
        return details;
    }
    set 
    {
        //need to call here base class method
        //refreshContents("details");
        details = value;
    }
}

}

对于不同类型的字段,我需要调用不同的方法,例如refreshContents()refreshContetns("fieldName")。我正在寻求解决IoC和依赖注入的问题。 你能帮帮我吗?

3 个答案:

答案 0 :(得分:0)

这似乎是面向方面编程(AOP)的用例。

以下是一些开头的链接:

答案 1 :(得分:0)

IoC或DI会对您的情况有何影响?

我认为你只想在基类中使用泛型方法,并从getter或setter中调用thios方法

答案 2 :(得分:0)

如果要将刷新逻辑保留在一个位置,并以不同的方式调用属性,请考虑实现INotifyPropertyChanged并在实体类本身中处理PropertyChanged事件并在那里实现刷新逻辑。

然而,更重要的问题是为什么要在设置或获取属性时刷新内容?如果您提供一些不动产的名称,可能会有所帮助。