Je rencontre des difficultés avec un service WCF RIA similaire au problème spécifié dans this thread.Ria Services Passing Complex Object en tant que paramètre d'une méthode de service de domaine de requête
La méthode domainservice que je crée (méthode Query) doit prendre un paramètre d'objet complexe. exemple méthode DomainService:
public ComplexObjectResult GetComplexObject(ComplexObjectParameter test)
{
//do stuff
}
l'objet de paramètre:
public class ComplexObjectParameter
{
[Key]
public decimal ID { get; set; }
... other fields
}
Je reçois cette erreur de compilation: Erreur 70 Paramètre 'test' d'entrée de fonctionnement de domaine 'GetComplexObject' doit être l'un des sérialisable prédéfini types.
Après quelques recherches sur le web j'ai trouvé this msdn thread. Il indique qu'il s'agit d'une limitation des services RIA et que le thread ne spécifie aucune solution de contournement décente.
Maintenant, il semble y avoir quelques solutions de contournement sales:
Modifier le paramètre complexe à type de chaîne et linéariser/désérialiser le parameterobject que je trouve nous-même une solution très hacky. Utilisez la balise [Invoke] sur la méthode de service de domaine et perdez toutes les fonctionnalités de suivi RIA, pour lesquelles j'utilise RIA en premier lieu.
Y a-t-il des alternatives pour les solutions mentionnées qui ont moins d'inconvénients? Est-ce que quelqu'un a trouvé une solution de contournement plus élégante pour ce problème?
Merci
Je suis allé avec votre deuxième option Stephane. Les types complexes que j'ai renvoyés étaient en lecture seule sur le client, de sorte que la perte de la fonctionnalité de suivi n'était pas un problème pour moi. Envisager de mettre des solutions potentielles (même sales) en réponse la prochaine fois ... J'aurais voté à la fois pour la question et la réponse alors! –