2008-08-14 49 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};