Ria-Dienste, die ein komplexes Objekt als Parameter an eine Abfragedomänen-Dienstmethode übergeben

Ich habe einige Probleme mit einem WCF-RIA-Dienst, der dem in @ angegebenen Problem ähneldieser Thread.

Die von mir erstellte domainservice-Methode (eine Abfragemethode) sollte einen komplexen Objektparameter annehmen. Beispiel für eine Domainservice-Methode:

public ComplexObjectResult GetComplexObject(ComplexObjectParameter test)
   {
        //do stuff
   }

das Parameterobjekt:

public class ComplexObjectParameter 
{        

    [Key]
    public decimal ID { get; set; }

    ... other fields
}

Ich erhalte diesen Kompilierungsfehler:Error 70 Der Parameter 'test' des Domänenoperationseintrags 'GetComplexObject' muss einer der vordefinierten serialisierbaren Typen sein..

Nach einigem Suchen im Web fand ichdieser msdn Thread. Es wird angegeben, dass dies eine Einschränkung der RIA-Dienste ist und der Thread keine anständigen Problemumgehungen angibt.

Nun scheint es ein paar schmutzige Workarounds zu geben:

Ändern Sie den komplexen Parameter, um string einzugeben, und serialisieren / deserialisieren Sie das Parameterobjekt selbst. Ich finde eine sehr hackige Lösung.

Verwenden Sie das Tag [Invoke] für die Domain-Service-Methode und verlieren Sie alle RIA-Tracking-Funktionen, für die ich RIA in erster Linie verwende.

Gibt es Alternativen zu den genannten Lösungen, die weniger Nachteile haben? Hat jemand eine elegantere Lösung für dieses Problem gefunden?

Vielen Dan

Antworten auf die Frage(4)

Ihre Antwort auf die Frage