J'ai obtenu une classe appelée "Board" et une de ses propriétés est une ObservableCollection. Quand j'envoie le ObservableCollection via WCF (du serveur au client) fin l'appel de mon proxy, il est transformé en un tableau, ce qui n'est pas bon pour moi. Puis-je conserver ObservableCollection après avoir été envoyé, ou dois-je kicker le tableau jusqu'à ce qu'il redevienne ObservableCollection?ObservableCollection se transforme en un tableau après avoir été transporté en utilisant WCF
Répondre
Vérifiez l'option 'Configure Service Reference' dans le menu contextuel dans VS pour la référence. Vous pouvez choisir le type de collection qui est transmis sur le service. Par défaut je pense qu'il est défini sur array mais il y a plusieurs choix (je crois que list et observablecollection sont des options).
EDIT: Je viens de vérifier, et malheureusement la collection observable n'est pas l'un des choix. Il semble que vous devrez choisir parmi:
- Tableau
- ArrayList
- LinkedList
- Liste
- Collection
- BindingList
Par défaut - non, vous Je ne peux rien y faire. WCF va sérialiser vos structures en quelque chose qui peut être représenté avec un schéma XML. Le schéma XML n'a aucune connaissance de rien d'autre que des structures de données brutes et assez simplistes. Vous ne pouvez transférer que des données concrètes et brutes - pas d'addon comportemental «magique». IF Vous possédez les deux extrémités du fil: vous pouvez placer vos contrats de service et de données dans un ensemble de bibliothèque de classes distinct et les partager entre le serveur et le client. Dans ce cas, vous n'avez qu'une seule implémentation de votre contrat de données: votre ObservableCollection.
Si vous partagez cet ensemble entre votre service (mise en œuvre) classe, et le client (ajouter la référence à cette assemblée avant vous « Ajouter un service de référence » de Visual Studio!), Votre client doit ramasser ce ObservableCollection et continuez à l'utiliser (au lieu de créer un tableau compatible avec le schéma XML du côté client).
Merci à vous deux pour la réponse. Je regarderai les deux solutions quand je continuerai le projet, et commencera par essayer et changer l'envoi de collection par le service de wcf.
Je vais vous laisser savoir ce qui fonctionne pour moi ...
- 1. JButtons se réactivent après avoir été désactivés
- 2. ObservableCollection découper en utilisant lambda
- 3. Le simulateur se transforme en iPhone
- 4. Le jeu se bloque après avoir été stressé
- 5. iPhone UIViews dormir/mourir après avoir été remis en vue
- 6. C#: WCF service avec un membre IXmlSerializable se transforme en DataSet
- 7. Transforme l'entrée de la ligne de commande en un tableau
- 8. en utilisant readXML dans un JCO.table après que le XML a été créé en utilisant JCO
- 9. CellForRowAtIndexPath se bloque après avoir été appelé beaucoup plus tard que numberOfRowsInSection
- 10. OpenGL Erreur sous-dépassement se transforme en débordement?
- 11. IE6 transforme jar en zip
- 12. questions JWPlayer IE, l'écran en cours en blanc après avoir été caché et montré
- 13. Conversion ObservableCollection à un tableau dans Silverlight
- 14. Transforme Div en Link
- 15. Comment WCF transforme un contrat ServiceContract/OperationContract en un message qui peut être sérialisé?
- 16. Transforme un multimap en ensemble de séries
- 17. Utiliser WebClient en C# est-il possible d'obtenir l'URL d'un site après avoir été redirigé?
- 18. Hibernate transforme SQL en critères
- 19. Comment savoir quand une vue UIViewController est affichée après avoir été en arrière-plan?
- 20. C# - convertir un type anonyme en observablecollection
- 21. App se bloque après la connexion en utilisant Facebook Connect
- 22. En utilisant MSMQ et WCF
- 23. Transforme un arbre d'objets java en un tableau de dimension 2
- 24. Avoir un rappel après l'exécution de deux requêtes asynchrones en utilisant mongoose
- 25. typedef'ing un tableau vs en utilisant une struct en C++
- 26. Projet Visual Studio 2008 ne se construisant pas après avoir été déplacé vers une nouvelle machine
- 27. ObservableCollection
- 28. Comment oublier les données sérialisées après avoir été lues en Java?
- 29. Contexte.User perdant des rôles après avoir été assigné dans Global.asax.Application_AuthenticateRequest
- 30. eval-ing une fonction, la performance après avoir été evaled
Peut-être au moment où il n'a pas été possible, mais de nos jours, vous pouvez choisir ObservableCollection. –
Nice! Je suis heureux que MS ait fait du bon travail en ajoutant des fonctionnalités à la WCF au fil du temps. –