5

現在アクティブな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);
}

どうすれば修正できますか?

4

1 に答える 1

1

それは私だけですか、それともあなたのパラメータは間違っていますか?また、適切な数のパラメーターがありますか?私は何かが欠けている可能性がありますので、すでにこのようなものをチェックしている場合は申し訳ありません:

ドキュメントには次のように書かれています。

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

これは、パラメータリストを次のように定義する必要があることを示しています。

object[] paramlist = new object[5] {objframe, ".uno:Paste", "", 0, null};
于 2008-08-14T01:29:10.960 に答える