在Vsto 2019中,问题对象永远不会被处置
嗨,据我所知。Net 2020 Objarx Sdk与Vsto2017兼容,但目前我的习惯是在Vsto2019上使用,它仍然可以正常使用我的cad2020版本,除了一些非常烦人的通知,我还不知道如何处理它们(vsto2017上没有出现消息,Excel vsto 2019也没有消息,只有cad)。这是我遇到的代码(很久以前写的代码),但我仍然在这里阅读它们,因为我是新的: Private Sub SetStoredRotation(ByVal obj As DBObject,ByVal rotation As Double)。AddRegAppTableRecord(kRegAppName)。
Dim rb As ResultBuffer = obj,扩展数据。
如果rb为空,则。
rb = New ResultBuffer(新类型值(kAppCode,kRegAppName),新类型值(kRotCode,rotation))。
否则。
rb,Add(新类型值(kAppCode,kRegAppName))。
rb,Add(新类型值(kRotCode,rotation))。
结束If。
对象,XData = rb。
rb,Dispose()。
错误是:由“New ResultBuffer”创建的一次性对象...从未被释放我在使用时遇到困难,我不确定为什么rb.dispose不起作用(其他没有Cad的vsto19项目仍然正常工作)我可以在不抑制消息和不声明其他对象类型的情况下处理此错误吗?非常感谢!。
**** Hidden Message ***** 你能把痕迹去掉吗?
布里·维利 我怀疑代码不是问题所在,而是编译器没有准确理解发生了什么。
如果这样做会发生什么
专用子集存储驱动(ByVal对象作为DBObject,ByVal旋转作为Double)
AddRegAppTableRecord(kRegAppName)
使用rb作为ResultBuffer=IIf(IsNothing(obj.XData),新的resultbufer(),obj.x data)
rb。添加(新类型值(kAppCode,kRegAppName))
rb。添加(新类型值(kRotCode,旋转))
obj.XData=rb
结束使用
末端接头
页:
[1]