在调用方法时调用方法

本文关键字:方法 调用 | 更新日期: 2023-09-27 18:22:08

无论何时调用同一类中的方法,我都如何调用该类中的一个方法?

而不是这样做:

public class MyClass
{
    private void InvokeMe() { }
    public void Method1()
    {
        this.InvokeMe();
        // some codes
    }
    public void Method2()
    {
        this.InvokeMe();
        // some codes
    }
    public void Method3()
    {
        this.InvokeMe();
        // some codes
    }
    // more methods
}

我想自动调用InvokeMe私有方法,而不是将其放在MyClass中的每个公共方法上,因为该类中有太多方法,而且该类总是会更改。

我的代码是C#,Framework 4.0,在Visual Studio 2010 Pro中构建的。

请帮忙,提前谢谢。

在调用方法时调用方法

这可以使用一些方面编程来实现(看看PostSharp或它的一个替代方案)。或者,由于您使用的是.NET 4,因此可以创建一个DynamicObject实现来充当类的代理,并且当对其调用方法时,它可以先调用InvokeMe方法。

更新

我添加了一个链接到上面的DynamicObject文档以供进一步阅读。这里有一个很好的MSDN博客,讨论了相关的要点。

Postsharp是一个选项,但它有一个按钮,上面写着"购买"(除非你对他们的免费入门版感到满意)。

如果您正在寻找其他价格较低的选项,请尝试例如Ninject或Spring.NET.

在我的一些项目中,我完全按照你的描述使用了Ninject,而且它很容易使用。请注意,截取(或面向方面编程)引入了一组新的概念,意识到这一点是值得的。

还要注意,它对我的项目有效并不意味着它对你的项目有效,其他因素可能会影响你的选择。