Использование C # с OpenOffice через отражение - PullRequest
5 голосов
/ 14 августа 2008

Я работаю над кодом для вставки в текущий активный OpenOffice документ непосредственно из C #. Я не могу включить ни одну из библиотек 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);
}

Как я могу это исправить?

1 Ответ

1 голос
/ 14 августа 2008

Это только у меня так или у тебя неправильные параметры? Кроме того, у вас есть правильное количество параметров? Я мог что-то упустить, так что извините, если вы уже проверили это:

В документации сказано:

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

Что бы указывало на то, что вам нужно определить список параметров как

object[] paramlist = new object[5] {objframe, ".uno:Paste", "", 0, null};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...