IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

[C#] Comment sérialiser un objet Font ?


Sujet :

C#

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5
    Points : 5
    Points
    5
    Par défaut [C#] Comment sérialiser un objet Font ?
    Hello,
    je cherche à Sérialiser un objet 'Font' mais cela ne fonctionne pas car cette classe n'est pas Serializable.
    Je suppose que je dois passer par un objet sérializable à moi avec les infos de cette police (Nom,Taille, Bold, etc) ca fonctionne mais je ne sais pas comment récreer un objet 'Font' à la désérialization car les propriétés de la classe Font sont readonly.
    Avez-vous une idée ?
    Merci d'avance

  2. #2
    Membre régulier
    Inscrit en
    Juillet 2005
    Messages
    83
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 83
    Points : 100
    Points
    100
    Par défaut
    je cherche à Sérialiser un objet 'Font' mais cela ne fonctionne pas car cette classe n'est pas Serializable.
    Tu es sûr que c'est pour cela que tu n'y arrives pas ?
    MSDN indique pourtant que la classe System.Drawing.Font est sérialisable :

    C#
    [SerializableAttribute]
    [ComVisibleAttribute(true)]
    public sealed class Font : MarshalByRefObject, ICloneable, ISerializable, IDisposable

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5
    Points : 5
    Points
    5
    Par défaut
    Citation Envoyé par Wyatan
    je cherche à Sérialiser un objet 'Font' mais cela ne fonctionne pas car cette classe n'est pas Serializable.
    Tu es sûr que c'est pour cela que tu n'y arrives pas ?
    MSDN indique pourtant que la classe System.Drawing.Font est sérialisable :

    C#
    [SerializableAttribute]
    [ComVisibleAttribute(true)]
    public sealed class Font : MarshalByRefObject, ICloneable, ISerializable, IDisposable
    Oui j'ai vu que MSDN disait ca mais quand j'essaye de Serializer en XML, j'obtient une exception.
    {"Cannot serialize member 'ScreenShare.Template.Text.Font' of type 'System.Drawing.Font', see inner exception for more details."}

    {"System.Drawing.Font cannot be serialized because it does not have a parameterless constructor."}
    Apparement La classe Font ne possède même pas de constructeur vide donc Serialization impossible!

  4. #4
    Membre régulier
    Inscrit en
    Juillet 2005
    Messages
    83
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 83
    Points : 100
    Points
    100
    Par défaut
    Oui j'ai vu que MSDN disait ca mais quand j'essaye de Serializer en XML, j'obtient une exception.
    Oula, attention, c'est complètement différent !

    L'attribute Serializable s'applique au BinaryFormatter.
    Si tu utilises un XmlSerializer, les pré-requis ne sont pas du tout les mêmes :
    (de tête)
    - Il faut que la classe à sérialiser dispose d'un constructeur publique sans argument (et c'est ce qui manque à la classe Font)
    - Seuls les champs / propriétés publiques en lecture / écriture seront sérialisés.

    Es-tu obligé d'utiliser la sérialisation XML ? La sérialisatioon binaire marcherait...

  5. #5
    Expert éminent
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    Détails du profil
    Informations personnelles :
    Âge : 64
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Points : 7 879
    Points
    7 879
    Par défaut
    Citation Envoyé par djmanu
    ... Apparement La classe Font ne possède même pas de constructeur vide
    Ben si celui de la classe dont elle hérite MarshalByRefObject
    Citation Envoyé par Reflector
    Protected MarshalByRefObject()
    {
    }
    donc passes par un BinaryFormatter
    ou non il reste toujours la solution que tu as envisagé par le biais d'une structure perso exemple

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5
    Points : 5
    Points
    5
    Par défaut
    Merci!
    Je vais utiliser la structure XmlFont, je ne veux pas utiliser un binary car le but est que l'on puisse éditer les fichiers XML à la main ... pour cela je trouvais la serialization XML super pratique!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 4
    Dernier message: 02/12/2008, 12h00
  2. Réponses: 5
    Dernier message: 16/05/2008, 18h56
  3. [servlet][bean]comment récupérer l'objet request
    Par otminou dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 27/09/2004, 14h40
  4. Comment mettre plusieurs objets ds un composant ?
    Par Fleury dans le forum Composants VCL
    Réponses: 7
    Dernier message: 24/05/2003, 17h34

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo