我想知道在C#中是否可以使用以下内容:
基类:
public abstract AbstractClass { }
还有一些儿童班:
public class ConcreteClass : AbstractClass
{
public int SomeMethod(){}
}
public class ImplClass : AbstractClass
{
public int SomeOtherMethod(){}
}
是否可以拦截基类中(直接或间接)固有的所有类中的所有方法?
提前感谢
答案 0 :(得分:1)
由于C#支持AOP,这可能是
Code injection throw attributes :使用反射来获取类的属性并调用所需的方法(常用)
像Using IOC Frameworks这样的{p> Spring.Net可能是另一种选择。 (高级选项,使用第三方库) ContextBound Objects approch :您可以从MarshalByRefObject
或ContextBoundObject
继承您的课程并使用IMessageSink
。 (艰难的方式)
可以找到一篇比较approches的好文章here
答案 1 :(得分:0)
这是可行的,如果您按照MSDN中的示例进行操作,您已经知道了,请参阅http://msdn.microsoft.com/en-us/library/sf985hc5%28v=vs.71%29.aspx
抽象方法具有以下特征:
抽象方法隐式地是虚方法。 抽象方法声明仅允许在抽象类中使用。 因为抽象方法声明没有提供实际的实现,所以没有方法体;方法声明只以分号结束,签名后面没有大括号({})。