2008-08-14 67 views
5

我正在研究一些代码,直接从C#中将其粘贴到当前活动的OpenOffice文档中。我不能包含任何OpenOffice库,因为我们不想打包它们,所以我们使用反射来访问OpenOffice API通过反射使用C#与OpenOffice

我的问题涉及到通过反射使用调度程序。我无法弄清楚传递给它的正确参数,由于不匹配的类型,给了我一个可爱的“TargetInvocationException”。

object objframe = GetProperty<object>(objcontroller, "frame"); 
if (objframe != null) 
{ 
    object[] paramlist = new object[2] {".uno:Paste", objframe}; 
    InvokeMethod<object>(objdispatcher, "executeDispatch", paramlist); 
} 

我该如何解决?

回答

1

它只是我还是你的参数是错误的?另外,你是否有正确的参数数量?我可以,虽然失去了一些东西,很抱歉,如果你已经签这个东西:

文档说:

dispatcher.executeDispatch(document, ".uno:Paste", "", 0, Array()) 

这将表明,我认为你需要有你的参数列表定义为

object[] paramlist = new object[5] {objframe, ".uno:Paste", "", 0, null};