Avec une application que je suis en train de développer, j'ai rencontré le besoin de sérialiser certains objets métier dans un certain nombre de formats propriétaires différents. J'ai du mal à prendre une décision sur la meilleure façon d'aborder cela et j'aimerais avoir quelques opinions.Implémentation de la sérialisation personnalisée à plusieurs formats: ISerializable ou une solution personnalisée?
Je sais que .NET nous fournit l'interface ISerializable
que je peux implémenter sur mes objets métier, mais j'ai du mal à comprendre comment cela fonctionnerait quand je devrais sérialiser à peut-être 3 formats différents? En plus de cela, je ne suis pas très enthousiaste à l'idée d'avoir tout le code spécifique à la sérialisation "gommant" mes beaux objets business propres - je préférerais confier cette responsabilité à un objet dédié. Cela semble logique aussi bien quand il y a un certain nombre de formats différents que les options de sérialisation pourraient alors être étendues dans le futur en étendant simplement une classe de base, ou en la modifiant sans éditer les objets métier eux-mêmes. Là encore, je préfère ne pas "réinventer la roue".
Je me demande quelle est votre expérience et vos opinions collectives dans des cas comme ceux-ci?
Est-ce que ISerializable
est une option viable pour plusieurs formats? Ou est une classe personnalisée ou un service plus adapté à la tâche? Y a-t-il des motifs de conception ou d'autres caractéristiques de cadre couvrant cette zone?
pouvez-vous élaborer un peu plus sur ce que ces formats pourraient être? Xml, CSV, etc.? – theburningmonk
@theburningmonk. ISerializable peut vraiment fonctionner avec des formats qui incluent "quelque chose que nous n'avons pas encore inventé". –
Bien sûr, ils sont des formats propriétaires. On a une représentation basée sur le texte en utilisant des codes spéciaux et des identifiants pour identifier les types de données et les variables, les deux autres sont des formats binaires. Pas de XML ou de CSV - j'aurais aimé que ce soit aussi simple! :) – nukefusion