Frage

Eigentlich sollte es eine direkte Antwort auf diese Frage geben (geht es um die Eigenschaft "Objekt" unten):

Mit dem folgenden Datenvertrag:

    [KnownType(typeof(bool))]
    [KnownType(typeof(int))]
    [KnownType(typeof(string))]
    [KnownType(typeof(Customer))]
    [KnownType(typeof(Client))]
    public class Transaction
    {    
        // properties
        [DataMember(Name = "UID")]
        public int UID{}

        [DataMember(Name = "Type")]
        public Enums.TransactionType Type{}

        [DataMember(Name = "Data")]
        public Object Data{}
    }

und den folgenden Servicevertrag:

public interface IService
{
      [OperationContract(Name = "GetData")]
      List<Transaction> GetTransact();
}

Wird das interoperabel sein?Sprichwort aus Java, gSoap?Wenn nicht, wie kann ich es interoperabel machen?

Danke.

BEARBEITEN: Ich möchte nur wissen, ob WCF weiß, wie man das Objekt von / in die definierten bekannten Typen serialisiert / deserialisiert.

War es hilfreich?

Lösung

Es sollte in Ordnung sein, solange der Client die Typen ordnungsgemäß aus der WSDL generieren kann.Zum Beispiel könnte es je nach Client C # ändern List<Transaction> in eine Transaction[] oder etwas ziemlich Gleichwertiges.Sie müssen auch den richtigen Bindungstyp auswählen.Normalerweise hat basicHttpBinding die besten Ergebnisse für die Interoperabilität.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top