我目前正在评估 AOP 的 PostSharp 框架。我将使用它的解决方案由一个 C# 库和一个 C++/CLI 库组成。C++/CLI 库在 C# 库中提供了一些专门的接口实现。
我将 PostSharp 和PostSharp 站点中的 Undo/Redo 演示添加到解决方案中。NuGet 告诉我这两个项目都使用 PostSharp-NuGet 包。
C# 代码中使用的所有属性都可以完美运行。我可以按预期跟踪每个更改、撤消和重做。
然而,在 C++/CLI 代码中,什么也没有发生。所有更改都将被忽略。似乎方面从未被注入,或者以某种方式被忽略。但是,代码确实使用自定义属性集进行编译:
using namespace PostSharp::Extensibility;
using namespace UndoDemo;
public ref class A
{
[Undoable(AttributeInheritance = MulticastInheritance::Multicast)]
virtual property int N;
};
我正在使用 Visual Studio 2012 Update 3 和 PostSharp 3.0.33。
是否已知 PostSharp 不能与 C++/CLI 一起使用?或者为了让 PostSharp 与混合模式类一起工作,是否需要采取任何特殊步骤?