您可以在 c++/cli 中创建动态对象,但不能像在 C# 项目中那样使用它。但是,您可以从 C# 中使用它。这是您的操作方法:
在 C++/CLI 中创建返回Object^的属性或方法。使用System::Runtime::CompilerServices::DynamicAttribute标记此属性或方法。你已准备好出发。
这是我创建的一个快速示例:
namespace ClassLibrary1
{
using namespace System;
using namespace System::Dynamic;
public ref class Class1 : public DynamicObject
{
public:
[System::Runtime::CompilerServices::Dynamic]
static property Object^ Global
{
public:
Object^ get()
{
return gcnew Class1();
}
}
public:
String^ Test()
{
return "Test";
}
};
}
还有我的 C# 消费者:
Console.WriteLine( ClassLibrary1.Class1.Global.Test() );