Использование C # с OpenOffice через отражение

Я работаю над кодом для вставки в текущий активный документ OpenOffice прямо из C #. Я не могу включить ни одну из библиотек OpenOffice, потому что мы не хотим их упаковывать, поэтому мы используем отражение, чтобы получить доступ к API OpenOffice .

Мой вопрос касается использования диспетчера через рефлексию. Я не могу определить правильные параметры, чтобы передать его, давая мне прекрасное "TargetInvocationException" из-за несовпадающих типов.

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

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

14.08.2008 00:36:01
1 ОТВЕТ

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

Документация гласит:

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

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

object[] paramlist = new object[5] {objframe, ".uno:Paste", "", 0, null};
1
15.03.2010 13:12:36