J'écris une classe qui doit prendre un objet, enregistrer son état actuel, mettre à jour l'objet et le passer à une autre classe. Le seul problème est que vous ne pouvez hériter que d'une classe et j'en ai besoin pour hériter d'une classe dans mon projet. Je m'intéresse à System.IO.Stream parce que je peux si nécessaire, déplacer cette classe à son propre thread sans la plupart des sockets et autres méthodes de l'IPC. Le principal problème est, y at-il une interface pour System.IO.Stream? Si non, y a-t-il un moyen d'obtenir la fonctionnalité que je veux sans sacrifier les données critiques du projet dont je dépend? (Je suis désolé si je sonne un peu discoherent, je ne suis pas sûr de savoir comment cette question mot.)Existe-t-il une interface pour System.IO.Stream?
Répondre
Il semble que IEnumerable<T>
est un meilleur ajustement - cours d'eau sont bons pour passer octets autour, mais itérateurs sont bons pour représenter des flux d'objets plus généraux.
Vous voudriez quelque chose qui lit à partir d'un flux (par exemple une socket) et des objets créés, probablement avec des blocs d'itération C# (déclarations de rendement, etc.). Ensuite, vous pouvez utiliser les fonctions de traitement, les filtres, etc. sur le IEnumerable<T>
, et le renvoyer dans un socket (ou un autre flux d'octets) plus tard.
Pour répondre à la question - non, Stream
n'a pas d'interface, mais la pertinence de la partie de votre question relative au filetage n'est pas claire. Est-ce que vous êtes intéressé par les opérations d'asynchronisation? Pourquoi voulez-vous une interface pour le streaming?
l'implémentation de l'interface ne vous donnera aucune fonctionnalité de la classe, elle laissera simplement savoir aux autres classes que vous fournissez cette fonctionnalité. Si vous avez vraiment besoin d'avoir plusieurs héritages (deux classes de base pour que vous puissiez obtenir la fonctionnalité des deux), pouvez avoir votre classe de base, celle dont vous avez vraiment besoin, être une sous-classe de Stream lui-même.
public class MyObject : Base Object
{
}
public class BaseObject : Stream
{
}
etc ..?
contexte/contexte peut aider.
Il est vraiment difficile de comprendre ce que vous essayez de faire ici. Cela ressemble à un candidat à l'agrégation par rapport à l'héritage. Au lieu d'étendre System.IO.Stream, pourquoi ne pas en passer un dans l'objet à utiliser? Cela peut être une propriété ou une méthode get/set, et si vous passez l'objet à un autre thread, le flux va avec.
- 1. System.Runtime.InteropServices.ComTypes.IStream à System.IO.Stream
- 2. System.IO.Stream jetable avec un lecteur
- 3. Méthode non trouvée: System.IO.Stream CrystalDecisions.CrystalReports.Engine.ReportDocument.ExportToStream (CrystalDecisions.Shared.ExportFormatType)
- 4. Une jolie interface graphique pour autotest
- 5. Interface utilisateur pour une application de bureau
- 6. Stratégie pour XmlSerialization avec une interface?
- 7. Créer une interface Flash pour WordPress?
- 8. Groovy: Délégation de métaclasse pour une interface?
- 9. Moq'ing une interface
- 10. Comment construire une interface pour une telle ENUM
- 11. Briser une interface
- 12. Attributs sur une interface
- 13. Comment lancer une interface vers sa sous-interface?
- 14. Interface à l'envers pour l'iPhone
- 15. C# - Interface dans une classe
- 16. interface pour seulement certaines classes?
- 17. MEF: Mark interface pour l'exportation
- 18. Interface jQuery-like pour PHP?
- 19. Rebobiner une socket vers une autre interface
- 20. Interface Builder pour iPhone tutoriel
- 21. Utilisation de Reflection.Emit de .NET pour générer une interface
- 22. Comment faire pour concevoir une interface comme celle-ci
- 23. Comment concevoir une interface pour le confinement Muliple
- 24. Existe-t-il une interface programmatique pour Yahoo! Messager?
- 25. Existe-t-il une interface non-textuelle pour MySQL?
- 26. Comment concevoir une interface graphique légère pour Windows?
- 27. Windsor Castle: une interface fluide pour les paramètres Resolve()?
- 28. Programmer une interface utilisateur pour un petit appareil
- 29. Devrais-je utiliser une interface pour les codes de type?
- 30. Fournir une interface "conviviale" pour la recherche de texte intégral
Je vais jouer avec IEnumerable et rendre compte. Je pense qu'une partie de mon problème est que je suis debout depuis 48 heures et que je suis fatigué. –
Après avoir lu sur IEnumerable, cela fonctionnera beaucoup mieux. Je vous remercie. –
Bon - mais allez au lit avant de l'essayer :) –