PostSharp 给出了这个错误:
PostSharp:无法在抽象或外部方法“...”上应用带有目标站点编织的 OnMethodInvocation 方面(...)。考虑从该方法中排除方面或使用调用站点编织。
建议的呼叫站点编织对我来说不是一个合适的解决方案。有没有办法为抽象方法添加前/后处理?
我建议你使用方面继承。方面将自动添加到实现抽象方法的所有方法中。
有关详细信息,请参阅 MulticastAttribute.AttributeInheritance 或 MulticastAttributeUsageAttribute.Inheritance 或官方文档。
这当然是不可能的——您将如何使用抽象方法(没有任何代码的方法)执行目标站点编织?您当然可以使用实现该方法的所有派生类型执行目标站点编织,但这需要您控制这些类型。或者您可以使方法非抽象和虚拟,并要求派生类型来调用基本实现。