在调用方法时调用方法
本文关键字:方法 调用 | 更新日期: 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,而且它很容易使用。请注意,截取(或面向方面编程)引入了一组新的概念,意识到这一点是值得的。
还要注意,它对我的项目有效并不意味着它对你的项目有效,其他因素可能会影响你的选择。