通过反射将C#与OpenOffice结合使用
时间:2020-03-05 18:39:31 来源:igfitidea点击:
我正在研究一些代码,以直接从C#粘贴到当前活动的OpenOffice文档中。我不能包含任何OpenOffice库,因为我们不想打包它们,因此我们使用反射来访问OpenOffice API。
我的问题涉及通过反射使用调度程序。我无法弄清楚传递给它的正确参数,由于类型不匹配,给了我一个可爱的" TargetInvocationException"。
object objframe = GetProperty<object>(objcontroller, "frame"); if (objframe != null) { object[] paramlist = new object[2] {".uno:Paste", objframe}; InvokeMethod<object>(objdispatcher, "executeDispatch", paramlist); }
我该如何解决?
解决方案
回答
是我还是参数设置错误?另外,我们是否拥有正确数量的参数?我可能会丢失一些东西,如果我们已经检查过这些东西,请对不起:
该文档说:
dispatcher.executeDispatch(document, ".uno:Paste", "", 0, Array())
这将向我表明我们需要将参数列表定义为
object[] paramlist = new object[5] {objframe, ".uno:Paste", "", 0, null};