Matlab 2017a-> 2018b。访问.NET程序集有何不同?

时间:2019-01-11 13:54:32

标签: .net matlab

使用Matlab 2017a,我为自己编写了一个包装程序,以使用矢量CAN硬件。它基于向量中的vxlapi_NET

在以前的版本中,我可以这样做:

xlstatus = obj.fid.XL_OpenDriver();
if xlstatus == vxlapi_NET.XL_Status.XL_SUCCESS   .....

因为xl_opendriver返回的类型为vxlapi_NET.XL_Status。 完全有道理...

现在与2018b相比,情况似乎完全不同了。 XL_OpenDriver返回类型为XLDefine+XL_Status的内容。

有人可以在这里解释这个“加号”是什么意思吗?我以前从未在Matlab中看到过类似的东西。此外,我没有找到任何将if xlstatus == vxlapi_NET.XL_Status.XL_SUCCESS转换为与2018b兼容的解决方案。

vxlapi_NET.XLDefine+XL_Status.XL_STATUS当然不是有效的表达式。

这是一个错误还是为什么行为方式如此不同?

非常感谢您!

1 个答案:

答案 0 :(得分:1)

我得到了MathWorks支持的答复。他们确认发生了一些变化:

  

类或枚举名称中的“ +”表示它嵌套在另一个类中。您不能直接从.NET Assembly实例化嵌套类或枚举。为此,必须使用反射。发行版之间的界面确实发生了变化。