自定义 C# 类在C++中映射到什么
本文关键字:映射 什么 C++ 类在 自定义 | 更新日期: 2023-09-27 18:32:18
我需要将数据从 C# 传递到我的 WP8 应用程序中的C++。
我了解到有一个从.NET到Windows运行时组件的映射。例如:
System.String
映射到Platform::String^
。
IReadOnlyList<String>
映射到Windows::Foundation::Collections::IVectorView<Platform::String ^>^
。
但是自定义(即用户定义的)类映射到什么?
例如,我在 C# 端有
public class MyDesc
{
public string m_bitmapName { get; set; }
public string m_link { get; set; }
}
public IReadOnlyList<MyDesc> getDescs()
{
return new List<MyDesc>();
}
我C++这边怎么称呼它?换句话说,我将"???"替换为以下内容:
virtual Windows::Foundation::Collections::IVectorView<??? ^>^ getDescs();
您需要
在 C# 代码引用的 C++/CX 组件中声明 MyDesc 类。
因此,在您的 C++/CX 中,您将拥有:
namespace WinRTComponent
{
public ref class MyDesc sealed
{
public:
property Platform::String^ BitmapName
{
Platform::String^ get() { return m_bitmapName; }
void set(Platform::String^ bitmapName) { m_bitmapName = bitmapName; }
}
property Platform::String^ Link
{
Platform::String^ get() { return m_link; }
void set(Platform::String^ link) { m_link = link; }
}
private:
Platform::String^ m_bitmapName;
Platform::String^ m_link;
};
}
然后,您将能够在C++/CX和C#之间传递MyDesc对象的向量/列表。