Announcement

Collapse
No announcement yet.

dynamischer Methodenaufruf

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • dynamischer Methodenaufruf

    Ich hab da ein Problem und bräuchte einen Lösungsansatz:

    Ich muss Methoden aufrufen, nur die Namen der Methoden erfahre ich erst zur Laufzeit, da ich sie aus einer WSDL-File auslese.

    Wie stelle ich dass nun am besten an? Gibt es da eine Möglichkeit?

    Vielen Dank im voraus...

  • #2
    Reflections -> Forumssuche
    Christian

    Comment


    • #3
      danke.. klappt perfekt ..

      Comment


      • #4
        so es klappt zwar in einer Konsolenanwendung, nur nich in einer ASP-Seite mit Webservice...

        Rufe die Funkion so auf:

        Code:
                        
        Type Typ = Type.GetType("Service1");
        MethodInfo methodInfo = Typ.GetMethod("ZWS_IntervallAktuellesJahr");
        
        return methodInfo.Invoke(ws, null).ToString();
        "Service1" ist der Webservicename, "ws" das Object von diesem.

        Wenn ich es ausführe kommt folgende Fehlermeldung:

        Fehler: System.NullReferenceException: Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt. bei ZWS_Test.ZWS_Test.ExecuteMethod() in C:\Dokumente und Einstellungen\Administrator\Eigene Dateien\Visual Studio 2008\Projects\ZentralerWebService\ZWS_Test\ZWS-Test.cs:Zeile 76.

        Zeile 76 ist:
        Code:
        return methodInfo.Invoke(ws, null).ToString();
        Wo liegt jetzt genau mein Fehler?

        Vielen Dank im voraus ...

        Comment


        • #5
          Wieso rufst Du denn den Webservice über Reflection auf?

          Ich schätze Du benutzt den WebService nicht als WebSerice, sondern einfach als normale Assembly. Ich kann mir nicht vorstellen, dass sich ein WebService so einfach per Reflection aufrufen lässt.

          Versuche doch mal den WebService (liegt denn der überhautp schon auf einem WebServer?) über einen Webverweis einzubinden.

          Comment


          • #6
            Ich hab den Webservice schon eingebunden. Ich kann die Methoden auch aufrufen, nur eben nicht dynamisch.

            Nur ich möchte mir sämtliche Methoden des Webservices dynamisch anzeigen lassen und aufrufen mittels einer ASP-Seite - zum testen. Denn in den Webservice sollen immer wieder neue Methoden hinzugefügt werden und will nicht per Hand neue Methodenaufrufe schreiben.

            Die Methodennamen lese ich mir aus der WSDL-File aus. Jetzt muss ich es nur noch hinkriegen das ich sie ausführen kann...

            Comment


            • #7
              so ich hab es hinbekommen ..

              der fehler lag hier:

              Code:
              Type Typ = Type.GetType("Service1");
              es muss so heißen:

              Code:
              Type Typ = Type.GetType(Service1);
              Ohne Anführungszeichen...

              Comment


              • #8
                Eventuell hätte das erste auch funktioniert, wenn Du den vollen Namen der Klasse verwendet hättest

                Code:
                Type Typ = Type.GetType("MyCompany.MyProject.Service1, MyAssemblyName");
                aber die andere Version ist sowieso sicherer

                Comment

                Working...
                X