【发布时间】:2016-02-05 20:32:50
【问题描述】:
我有这些简单的代码
static void Main(string[] args)
{
object addInName = "MyAddin";
Microsoft.Office.Interop.Excel.Application app = new Microsoft.Office.Interop.Excel.Application();
Microsoft.Office.Core.COMAddIn addin = app.COMAddIns.Item(ref addInName);
app.Visible = false;
var myObject = addin.Object;
var vvv = myObject.someMethod();
}
当运行它时,它在 someMethod 行失败并抛出 NullReferenceException。但 myObject 不为空。
如果我在该行设置断点,将鼠标光标移至 myObject,单击展开的Dynamic View,然后单击一些Interface View。然后就可以了!
似乎 COM 对象虽然不是 null,但还没有准备好/初始化。但是如果我从调试器断点检查它的内部状态,我会以某种方式强制它初始化。
有什么问题?
Addin COM 扩展了 StandardOleMarshalObject alrady。
【问题讨论】:
-
你是否看过这篇 MSDN 文章中的信息:msdn.microsoft.com/en-us/library/bb608621.aspx
标签: c# dynamic com vsto office-interop