2008-08-14 14 views
5

Estoy trabajando en algún código para pegar en el documento actualmente activo OpenOffice directamente desde C#. No puedo incluir ninguna de las bibliotecas de OpenOffice, porque no queremos empaquetarlas, por lo que estamos usando el reflejo para tener acceso al OpenOffice API.Uso de C# con OpenOffice a través de la reflexión

Mi pregunta implica el uso de un despachador a través de la reflexión. No puedo determinar los parámetros correctos para pasar a él, dándome una encantadora "TargetInvocationException" debido a tipos no coincidentes.

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

¿Cómo puedo arreglarlo?

Respuesta

1

¿Soy solo yo o tus parámetros están equivocados? Además, ¿tiene el número correcto de parámetros? Podría estar perdiendo algo, sin embargo, lo siento si ya ha comprobado estas cosas:

La documentación dice:

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

lo que indicaría a mí que usted necesita tener su lista de parámetros define como

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