每当调用同一个类中的方法时,如何在类中调用方法?
而不是这样做:
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
}
Run Code Online (Sandbox Code Playgroud)
我想自动调用InvokeMe私有方法,而不是将它放在MyClass中的每个公共方法上,因为我们在该类中有太多方法,并且该类总是更改.
我的代码在C#,Framework 4.0中,在Visual Studio 2010 Pro中构建.
请帮助,提前致谢.
这可以使用一些Aspect编程来完成(看看PostSharp或其中一个替代方案).或者,因为您使用的是.NET 4,所以您可以创建一个DynamicObject实现来充当您的类的代理,并且在调用方法时,它首先调用该InvokeMe方法.
UPDATE
我已经添加了DynamicObject上面文档的链接以供进一步阅读.有一个很好的MSDN博客可以在这里,讨论相关穴位.