0

我有很多实体类,现在在实体类的所有属性中都需要在 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 和依赖注入的问题。请问你能帮帮我吗?

4

3 回答 3

0

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

以下是一些开始的链接:

于 2010-11-29T09:59:23.263 回答
0

在您的情况下,IoC 或 DI 会做什么?

我认为您只需要基类中的通用方法并从 getter 或 setter 调用 thios 方法

于 2010-11-29T10:00:14.707 回答
0

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

但是,更重要的问题是为什么要在设置或获取属性时刷新内容?如果您提供一些真实的财产名称,这可能有助于理解。

于 2010-11-29T10:01:08.750 回答