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 :

forcer l'attribut [Serializable]


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Profil pro
    Développeur informatique
    Inscrit en
    Mai 2009
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2009
    Messages : 25
    Points : 17
    Points
    17
    Par défaut forcer l'attribut [Serializable]
    Bonjour,

    Peut on en c# forcer une classe à ajouter l'attribut [Serializable] par héritage, implémentation ou autre chose.

    car je cherche à faire ceci et ça risque de planter si T n'a pas l'attribut [Serializable] :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
     
        public interface IBase
        {
            void execute();
        }
     
        public class Compute : IBase
        {
            void execute()
            {
            }
        }
     
        public class Work<T> where T : IBase
        {
            private readonly T todo;
     
            internal Work( T todo )
            {
                this.todo = todo;
            }
     
            internal void start()
            {
                this.todo.execute();
            }
     
            internal void save()
            {
                //serialisation binaire,xml ou autre
                // plante si T n'a pas l'attribut [Serializable]
            }
        }

    Merci

  2. #2
    Membre éprouvé
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2007
    Messages
    693
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 693
    Points : 1 187
    Points
    1 187
    Par défaut
    Bonjour,

    A ma connaissance, je ne crois pas que ce soit possible par contre tu peux tester pour savoir si ta classe a bien l'attribut Serializable et là rien de plus simple : http://msdn.microsoft.com/fr-fr/libr...(v=VS.80).aspx

  3. #3
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Points : 5 195
    Points
    5 195
    Par défaut
    Dans la mesure ou il s'agit d'un "custom attribut", je pense que celà doit potentiellement etre faisable...

    Il faut regarder des exemples sur l'ajout de Custom Attribut sur des variables et voir si celà est faisable sur une classe en elle-meme...

    Mais dans la mesure ou je crois que celà est faisable sur un membre, pourquoi ne pas le faire sur une classe...

    Une recherche sur internet devrait aider, je pense

    Ici par exemple : http://geekswithblogs.net/abhijeetp/...utes-in-c.aspx
    The Monz, Toulouse
    Expertise dans la logistique et le développement pour
    plateforme .Net (Windows, Windows CE, Android)

  4. #4
    Membre expérimenté Avatar de ctxnop
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2007
    Messages : 858
    Points : 1 732
    Points
    1 732
    Par défaut
    Salut,
    Pourquoi ne pas plutôt utiliser l'interface ISerializable ?

    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    public interface IBase : ISerializable
    {
        void execute();
        void GetObjectData(SerializationInfo info, StreamingContext context);
    }
    Comme ca tout objet qui implémente IBase doit également implémenter ISerializable ce qui est, si je ne me trompe pas, suffisant pour que les méthodes de sérialisation n'échouent pas. Et donc ca te permet de t'assurer de la contrainte via le where.

  5. #5
    Membre à l'essai
    Profil pro
    Développeur informatique
    Inscrit en
    Mai 2009
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2009
    Messages : 25
    Points : 17
    Points
    17
    Par défaut
    Merci à tous

    ISerializable était une bonne idée mais ça fonctionne pas.

    Je vais regarder au niveau du Custom Attribut mais c'est bien à la compile qu'il sera utilisé ?

  6. #6
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par dormilon Voir le message
    ISerializable était une bonne idée mais ça fonctionne pas.
    ?
    ça veut dire ?

Discussions similaires

  1. [JAXB] Forcer l'attribut minOccurs="1" d'un élément
    Par Dolane dans le forum Persistance des données
    Réponses: 0
    Dernier message: 22/09/2010, 12h36
  2. Réponses: 9
    Dernier message: 02/10/2007, 16h12
  3. forcer l'attribut maxlength d'un input text
    Par psychoBob dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 20/02/2006, 11h39
  4. Lire un attribut dans un fichier XML en C++
    Par ti.k-nar dans le forum XML
    Réponses: 2
    Dernier message: 14/10/2002, 15h22
  5. comment changer d'attribut de fonte dans un Tlabel?
    Par sb dans le forum Composants VCL
    Réponses: 3
    Dernier message: 21/08/2002, 16h53

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