.net - Matlab 2017a -> 2018b。访问.NET 程序集不同?
问题描述
使用 Matlab 2017a,我为自己编写了一个使用矢量 CAN 硬件的包装器。它基于vxlapi_NET
from 向量。
在以前的版本中,我已经能够这样做:
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
当然,这不是一个有效的表达式。
这是一个错误还是为什么事情的表现如此不同?
非常感谢!
解决方案
我收到了 MathWorks 支持部门的回复。他们确认发生了一些变化:
类或枚举名称中的“+”表示它嵌套在另一个类中。您不能直接从 .NET 程序集实例化嵌套类或枚举。为此,您必须使用反射。版本之间的界面确实发生了变化。
推荐阅读
- python - 优化芹菜配置的公式
- php - 从存储/上传文件夹 Laravel 中找不到图像
- django - Django:查询与 FK 无关的模型
- c# - 如何在两个动画之间进行平滑过渡?
- c# - 识别 USB 集线器上设备的端口号
- html - 使用管道的角度过滤器帖子
- python - 如何使用 python 获取我的 youtube 历史中最后观看的视频?
- wso2 - 在 WSO2 IS 5.10 中进行后端 api 调用时出现 CORS 问题的示例 Pickup 调度 Web 应用程序
- mysql - 如何从 MariaDB/MySQL 中的日期时间获取一分钟的开始?
- java - JavaFX 2D 组合框