使用博图V17的openness。前面block已经是有引用的,在解密的时候 block.GetService<PlcBlockProtectionProvider>();返回PlcBlockProtectionProvider的引用,
再次加密的时候block.GetService<PlcBlockProtectionProvider>();返回null:

经大佬指点:要把程序编译后才能执行加密,否则通过 block.GetService() 方法返回空引用,所以在block.GetService() 时最好先编译一下程序。
编译程序组的代码:
ICompilable compileService = plcBlockSystemGroup.GetService<ICompilable>();
CompilerResult result = compileService.Compile();
