J'ai un service WCF et je dois exposer une interface en tant que contrat de données. Il existe deux classes dérivées de l'interface. Le service WCF retournera un objet du type dérivé. Le client devra le transformer en une classe dérivée. Est-ce possible du côté des clients? .Quelle devrait être mon approche?Interface WCF et classe dérivée
4
A
Répondre
6
Si vous avez classes dérivées, vous avez besoin de « publicité » ceux du contrat de données:
[DataContract]
[KnownType(typeof(DerivedType1))]
[KnownType(typeof(DerivedType2))]
public class BaseType
{
......
}
ou vous pouvez également spécifier ce genre de relations sur un contrat de service:
[ServiceKnownType(typeof(DerivedType1))]
[ServiceKnownType(typeof(DerivedType2))]
[ServiceContract()]
public interface IService
{
[OperationContract]
BaseType GetItems();
}
Consultez les documents MSDN sur Data Contract Known Types ou Service Known Types pour plus d'informations d'arrière-plan.
Questions connexes
- 1. classe de base et la classe dérivée
- 2. Interface dérivé avec un membre d'interface dérivée
- 3. interopérabilité lors du retour classe dérivée par classe de base dans WCF
- 4. la base NHibernate et cartographie classe dérivée
- 5. Classe dérivée C++
- 6. sérialisation classe dérivée personnalisée
- 7. protégée classe dérivée
- 8. déclaration utilisant (classe dérivée)
- 9. Ajout d'une interface dérivée à l'interface générique
- 10. pure classe abstraite et interface
- 11. RemoveHandlers dans la classe dérivée
- 12. WCF DataContract vs DataContract Interface
- 13. MEF et interface séparée conduit à "Interface pour chaque classe"
- 14. Windows.Forms.Control classe dérivée avec TabStop et key-events
- 15. C# Classe partielle et interface COM
- 16. interface Java et l'émission classe abstraite
- 17. étendre une classe et implémenter une interface
- 18. Pourquoi SvcUtil crée une interface de canal dérivée de IClientChannel
- 19. MFC: fonction OnInitialUpdate d'une classe dérivée CFormView-
- 20. moyen sûr pour initialiser une classe dérivée
- 21. Swig catalogué à la classe dérivée?
- 22. Sérialisation en C# avec une classe dérivée
- 23. Dispose d'exécution() avec classe dérivée de System.ComponentModel.Component
- 24. en utilisant une classe dérivée de TextView
- 25. Comment initialiser une classe dérivée en C#?
- 26. typedef privé visible dans la classe dérivée
- 27. Définir la classe dérivée dans Masterpage (C#)
- 28. Liaison de classe dérivée - est-ce faux?
- 29. Accès classe dérivée de l'émission d'objets de classe de base
- 30. Java; conversion de la classe de base en classe dérivée
Dans votre exemple, BaseType est une classe et je pose des questions sur l'interface. Est-ce possible avec l'interface? Je sais que le type connu fonctionne avec les classes mais fonctionne-t-il avec l'interface? – Prashant
@Prashant: non, WCF a besoin de classes concrètes - seules celles qui peuvent être exprimées dans le schéma XML nécessaire au transfert de données entre le client et le serveur –