1

我想知道在 C# 中是否可以执行以下操作:

一个基类:

public abstract AbstractClass { }

还有一些子类:

public class ConcreteClass : AbstractClass 
{
   public int SomeMethod(){}
}


public class ImplClass : AbstractClass 
{
   public int SomeOtherMethod(){}
}

是否可以拦截所有(直接或间接)通过基类固有的类的所有方法?

预先感谢

4

2 回答 2

1

由于 C# 支持 AOP,这可能是可能的

代码注入抛出属性:使用反射获取其类的属性并调用所需的方法(常用)

使用像Spring.Net这样的IOC 框架可能是另一种选择。(高级选项,使用第三方库)

ContextBound Objects 方法MarshalByRefObject:您可以从或ContextBoundObject使用继承您的类IMessageSink。(艰难的路)

可以在这里找到一篇比较方法的好文章

于 2013-03-16T15:06:04.207 回答
0

这是可行的,如果您按照 MSDN 中的示例进行操作,就可以了,请参阅http://msdn.microsoft.com/en-us/library/sf985hc5%28v=vs.71%29.aspx

抽象方法具有以下特点:

抽象方法隐含地是虚拟方法。抽象方法声明只允许在抽象类中。因为抽象方法声明没有提供实际的实现,所以没有方法体;方法声明仅以分号结尾,签名后没有大括号 ({ })。

于 2013-03-16T11:43:58.597 回答