Repository navigation
2.0.0-beta3
Pre-release
Pre-release
主题:逻辑组件(ILogicet)改为持有整个测点项目,构造函数不再逐个注入通道集与测点树。
破坏性变更
ILogicet新增Project、移除Channels/Tags:逻辑组件改为通过Project.Channels/Project.Tags访问通道与测点。
LogicetBase仍保留同名的Channels/Tags便捷属性(等价于Project.Channels/Project.Tags),所以继承LogicetBase的子类里
this.Tags.SelectCbnt(...)这类写法不用改;要从ILogicet变量上读的代码需要改成logicet.Project.Tags/logicet.Project.Channels。LogicetBase的构造函数改为LogicetBase(ITagsProject project):旧的(IReadOnlyList<ITagChannel> channels, ITagGrp tags)重载已删除。
继承LogicetBase的子类需要把构造函数改成接收ITagsProject并: base(project);原来用参数tags的地方改用this.Tags
(构造期间通道与测点已加载完成,可直接使用)。ILogicetCreator.CreateLogicet/ILogicetsLoader.LoadLogicets的参数由channels + tags改为ITagsProject:自己实现这两个扩展点的代码需要跟着改。- 旧插件 dll 必须重编:上面两处签名变化都是二进制层面的——用旧版本编译出的插件在加载期会创建失败(日志中是"构建Logicet错误"或"加载Logicet失败"),
不支持"只替换 dll"的升级方式。 - 影响面:只调库、不继承
LogicetBase、不实现上述接口、也不从ILogicet上读Channels/Tags的终端 App,编译与行为都不变。 - 示例与 AOT 冒烟测试(
samples/Samples.Plugin1、samples/StdUnit.Tags.Web、samples/WpfDemo、tests/AotSmokeTest.LogicetPlugins)已按新签名更新。
What's Changed
- S7 tests codecov by @newbienewbie in #93
Full Changelog: 2.0.0-beta...2.0.0-beta3