【问题标题】:PostSharp and C++/CliPostSharp 和 C++/Cli
【发布时间】:2013-08-10 18:03:00
【问题描述】:

我目前正在评估 AOP 的 PostSharp 框架。我将使用它的解决方案由一个 C# 库和一个 C++/CLI 库组成。 C++/CLI 库在 C# 库中提供了一些专门的接口实现。

我在解决方案中添加了 PostSharp 和 Undo/Redo demo from the PostSharp site。 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 与混合模式类一起工作,是否需要采取任何特殊步骤?

【问题讨论】:

    标签: .net c++-cli postsharp aop


    【解决方案1】:

    据记载,它仅支持 c# 和 VB.NET:postSharp 3.0 Ducumentaion

    而且属性在任何情况下都不会修改或更改代码......所以应用属性没有任何效果,除非没有人检查这个属性......而且编译也不是问题......

    您可以尝试将 PostSharp 与安全或纯 c++/CLI 代码 see /clr compiler option 一起使用。但在这种情况下,使用 C++/CLI 通常毫无意义...

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-15
      相关资源
      最近更新 更多