首页 > 解决方案 > 获取结构中数组的 SizeConst 值

问题描述

我有一些(生成的)c++ 代码在 DLL 中声明以下结构:

[StructLayout(LayoutKind::Sequential, Pack = 4)] public value struct typeData
{
public:
   [MarshalAs(UnmanagedType::ByValArray, SizeConst = 8)] array<UINT8> ^ a1;
   [MarshalAs(UnmanagedType::ByValArray, SizeConst = 20)] array<UINT8> ^ a2;
};

从我的 C# 应用程序中,我想找出数组的预期长度(示例中为 8 和 20)。

我已经加载了 DLL,并创建了一个对象实例

dll = Assembly.LoadFrom("data.dll");
var t = dll.GetType("typeData");
var obj = Activator.CreateInstance(t);

我可以从类型或对象中获取所需的信息吗?还是以其他方式?

标签: c#

解决方案


推荐阅读