2008-08-14 8 views
5

Je travaille sur du code à coller dans le document OpenOffice actuellement actif directement à partir de C#. Je ne peux pas inclure les bibliothèques OpenOffice, car nous ne voulons pas les empaqueter, nous utilisons donc la réflexion pour accéder au OpenOffice API.Utilisation de C# avec OpenOffice par réflexion

Ma question consiste à utiliser un répartiteur par réflexion. Je ne peux pas comprendre les paramètres corrects pour passer à lui, en me donnant une belle "TargetInvocationException" en raison de types incompatibles.

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

Comment puis-je résoudre ce problème?

Répondre

1

Est-ce juste moi ou sont vos paramètres dans le mauvais sens? Aussi, avez-vous le bon nombre de paramètres? Je ne pouvais manquer quelque chose, donc désolé si vous avez déjà vérifié ce genre de choses:

La documentation dit:

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

Ce qui me indiquer que vous devez avoir votre liste de paramètres définis comme

object[] paramlist = new object[5] {objframe, ".uno:Paste", "", 0, null}; 
Questions connexes