Я работаю над кодом для вставки в текущий активный документ 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);
}
Как я могу это исправить?





Это только у меня или у вас неверные параметры? Кроме того, у вас есть нужное количество параметров? Хотя я мог что-то упустить, извините, если вы уже проверили это:
В документации говорится:
dispatcher.executeDispatch(document, ".uno:Paste", "", 0, Array())
Это укажет мне, что вам нужно, чтобы ваш список параметров был определен как
object[] paramlist = new object[5] {objframe, ".uno:Paste", "", 0, null};