Announcement

Collapse
No announcement yet.

Fragen zur Serialisierung

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

  • Fragen zur Serialisierung

    Hallo Forum..
    ich habe allgemein Verständnisfragen zur De-/Serialisierung bei Client- und Server-Anwendung.

    Zum Prozess:
    Meine .Net C#-Applikation sendet via Web Service Importparameter zum Server, der diese bearbeitet und das entsprechende Ergebnis zurückliefert.

    Was muss ich selber in der C#-Anwendung implementieren!?
    Muss ich das Objekt, sprich die Importparameter vor dem Aufruf der Web Service-Methode serialisieren!? Handelt es sich programmierttechnisch bei dem dann erstellen Stream noch um ein "Objekt" - da der Methodenaufruf des Web Services das benötigt!?

    Die Anwortdaten, die vom Server nach der Bearbeitung zurückkommen, sind bereits serialisert, so dass ich die direkt in der C#-Anwendung z.B. zur Ausgabe in TextBoxen verwenden kann?

    Vielen Dank für ein paar Infos.. oder aussagkräftige Code-Beispiele
    Andi

  • #2
    Muss ich das Objekt, sprich die Importparameter vor dem Aufruf der Web Service-Methode serialisieren!?
    Wenn du es selbst machen willst ja. Aber eigentlich gibt es fertige Frameworks (sprich zum Beispiel WCF) die dir diese Aufgabe abnehmen. Wenn es sich um ein klassischen SOAP Web Service handelt kannst du mit WCF dir zur WSDL Beschreibung des Webservices eine Satz passender Client Klassen erzeugen lassen über die du Transparent den Webservice Aufruf wie einen normalen Methoden aufrufen kannst. Das nötige serialisiern/deserialisieren von Request und Response wird dir also von diesen Klassen abgenommen. Falls dich interessiert wqie das geht kannst du einfach in den Klassen nachschauen. Du bekommst die ja als Source Code.

    Comment


    • #3
      Ah, okay, vielen Dank - das hilft mir ganz schön weiter!!!

      Ich verwende Visual Studio 2012 - also wurde dies beim "Dienstverweis anlegen" bereits alles gemacht!? Dies wurde also alles in der "References.cs" gemacht???

      Code:
      //------------------------------------------------------------------------------
      // <auto-generated>
      //     Dieser Code wurde von einem Tool generiert.
      //     Laufzeitversion:4.0.30319.17626
      //
      //     Änderungen an dieser Datei können falsches Verhalten verursachen und gehen verloren, wenn
      //     der Code erneut generiert wird.
      // </auto-generated>
      //------------------------------------------------------------------------------
      
      // 
      // This code was auto-generated by Microsoft.VisualStudio.ServiceReference.Platforms, version 11.0.50522.1
      // 
      namespace WebService.ZAL_DELETE {
          
          
          [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
          [System.ServiceModel.ServiceContractAttribute(Namespace="urn:sap-com:document:sap:soap:functions:mc-style", ConfigurationName="AL_DELETE.AL_DELETE")]
          public interface AL_DELETE {
              
              // CODEGEN: Der Nachrichtenvertrag wird generiert, da der Vorgang mehrere Rückgabewerte aufweist.
              [System.ServiceModel.OperationContractAttribute(Action="", ReplyAction="*")]
              [System.ServiceModel.XmlSerializerFormatAttribute()]
              System.Threading.Tasks.Task<WebService.AL_DELETE.DeleteResponse> DeleteAsync(WebService.AL_DELETE.DeleteRequest request);
          }
          
          /// <remarks/>
          [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.0.30319.17626")]
          [System.Diagnostics.DebuggerStepThroughAttribute()]
          [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:sap-com:document:sap:soap:functions:mc-style")]
          public partial class Bapiret2 : object, System.ComponentModel.INotifyPropertyChanged {
              
              private string typeField;
              
              private string idField;
              
      .
      .
      .
      
             [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Order=0)]
              public string Type {
                  get {
                      return this.typeField;
                  }
                  set {
                      this.typeField = value;
                      this.RaisePropertyChanged("Type");
                  }
              }
              
              /// <remarks/>
              [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Order=1)]
              public string Id {
                  get {
                      return this.idField;
                  }
                  set {
                      this.idField = value;
                      this.RaisePropertyChanged("Id");
                  }
              }
      
      .
      .
      .

      Comment

      Working...
      X