我们正在为MS word开发VSTO文档级自定义。我们需要从后台线程访问该文档,以便我们不会停止刷新UI。
这适用于DocumentBase上的Sections / Table等属性。
尝试访问CustomDocumentProperties或BuiltInDocumentProperties时,收到以下异常
if (!exists("A") & exists("B")) {
C= B
} else if (exists("A") & !exists("B")) {
C= A
} else if (exists("A") & exists("B")) {
C= rbind(B,A)
} else {C <- NULL}
是否可以从后台线程访问这些属性?
由于
答案 0 :(得分:1)
首先,您不应该从后台线程访问Office对象模型,因为Office应用程序使用单线程单元模型。
使用后期绑定技术访问文档属性,有关详细信息,请参阅Type.InvokeMember方法。例如:
object properties = workBk.GetType().InvokeMember("CustomDocumentProperties", BindingFlags.Default | BindingFlags.GetProperty, null, workBk, null);
object property = properties.GetType().InvokeMember("Item", BindingFlags.Default | BindingFlags.GetProperty, null, properties, new object[] { propertyIndex });
object propertyValue = property.GetType().InvokeMember("Value", BindingFlags.Default | BindingFlags.GetProperty, null, propertyWrapper.Object, null);
您也可以看一下类似的页面: