private void lb_get(object ob, string Befehl, object[] param) { lb_result = ob.GetType().InvokeMember(Befehl, BindingFlags.GetProperty, null, ob, param); }//lb_get private void lb_set(object ob, string Befehl, object[] param) { lb_result = ob.GetType().InvokeMember(Befehl, BindingFlags.SetProperty, null, ob, param); }//lb_set private void lb_Method(object ob, string Befehl, object[] param) { lb_result = ob.GetType().InvokeMember(Befehl, BindingFlags.InvokeMethod | BindingFlags.OptionalParamBinding, null, ob, param); }//lb_method try { objCATIA = Marshal.GetActiveObject("CATIA.Application"); } catch { Console.WriteLine("Catia nicht gestartet"); return; }; //ab hier läuft CATIA System.Console.WriteLine(); System.Console.WriteLine("*** Results ***"); lb_get(objCATIA, "Caption", null); System.Console.WriteLine("Application: " + this.lb_result.ToString()); //das funktioniert lb_get(objCATIA, "ActiveDocument", null); object acticeDocument = lb_result; System.Console.WriteLine("Active Dokument: " + acticeDocument.ToString()); //hier kommt nicht der Name object acticeDocumentName = lb_get(acticeDocument, "Name", null); //das geht nicht, hier gibt es einen Fehler System.Console.WriteLine("Active Dokument: " + acticeDocumentName.ToString());