为自动属性C#定义自定义功能

本文关键字:定义 自定义 功能 属性 | 更新日期: 2023-09-27 18:25:22

有什么方法可以从基类重写派生类中的自动属性功能吗?例如:

class Foo
{
    public override void OverrideSetSomeHow()
    {
    //do something
    }
    public override void OverrideGetSomeHow()
    {
       //do something
    }
}
class Bar : Foo
{
    public string Name { get; set; }
}
class SomeOtherClass: Foo
{
    public Guid Id { get; set; }
}

期望的效果是get和set调用基类中被重写的方法(或者需要调用的方法)。我想在所有派生类中强制执行get和set的功能,而不希望其他使用代码的人知道它到底在做什么,而且它看起来会比把所有相同的逻辑放在一堆不同的地方干净得多。

为自动属性C#定义自定义功能

我不确定我能满足您的需求,但如果您试图实现的是拦截调用,以便您可以做更多的工作,我建议您查看Castle DynamicProxy,它正允许这样做。