bonjour,
j'ai exactement 3 heures de pratique de C# et 8h de recherche sur Google !
je n'arrive pas a sérialiser comme je veux une classe de ce type :
[System.Xml.Serialization.XmlType("MaClasse")]
public class CMaClasse
{
[System.Xml.Serialization.XmlAttribute("name")]
public String m_strName;
[System.Xml.Serialization.XmlAttribute("birthdate")]
public System.DateTime m_dtBirthdate;
}
en effet, même lorsque le m_dtBirthDate n'est pas initialisé, le XML
généré contient l'attribut birthdate="0001-01-01T00:00:00"
je souhaiterai que cet attribut n'apparaisse pas lorsqu'il n'est pas
renseigné
je suppose que c'est parceque le type DateTime est un type "valeur" et
non "reference"
Comment faire ? j'ai pensé créer une classe qui contient un DateTime
mais je n'y parvient pas
merci d'avance... si vous me mettez sur une piste
Chris
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Arnaud Debaene
"cbo" a écrit dans le message de news: 45085383$0$1792$
bonjour, j'ai exactement 3 heures de pratique de C# et 8h de recherche sur Google !
je n'arrive pas a sérialiser comme je veux une classe de ce type :
[System.Xml.Serialization.XmlType("MaClasse")] public class CMaClasse { [System.Xml.Serialization.XmlAttribute("name")] public String m_strName;
[System.Xml.Serialization.XmlAttribute("birthdate")] public System.DateTime m_dtBirthdate; }
en effet, même lorsque le m_dtBirthDate n'est pas initialisé, le XML généré contient l'attribut birthdate="0001-01-01T00:00:00"
je souhaiterai que cet attribut n'apparaisse pas lorsqu'il n'est pas renseigné je suppose que c'est parceque le type DateTime est un type "valeur" et non "reference"
Exactement. Comme DateTime est une value-type (une struct, et pas une class), il a *toujours* une valeur. Il n'y a pas de notion de DateTime "vide". Du moment que tu créé un DateTime, il a forcément une valeur, la valeur par défaut étant minuit le 1 Janvier 0 (Alleluiah! ;-).
Comment faire ? j'ai pensé créer une classe qui contient un DateTime mais je n'y parvient pas
Soit tu fais avec le fait qu'il y aura toujours une valeur dans DateTime, soit tu ajoutes à ta classe un flag indiquant si DateTime est valide ou pas.
Arnaud MVP - VC
"cbo" <cbo@noname.nonet> a écrit dans le message de news:
45085383$0$1792$636a55ce@news.free.fr...
bonjour,
j'ai exactement 3 heures de pratique de C# et 8h de recherche sur Google !
je n'arrive pas a sérialiser comme je veux une classe de ce type :
[System.Xml.Serialization.XmlType("MaClasse")]
public class CMaClasse
{
[System.Xml.Serialization.XmlAttribute("name")]
public String m_strName;
[System.Xml.Serialization.XmlAttribute("birthdate")]
public System.DateTime m_dtBirthdate;
}
en effet, même lorsque le m_dtBirthDate n'est pas initialisé, le XML
généré contient l'attribut birthdate="0001-01-01T00:00:00"
je souhaiterai que cet attribut n'apparaisse pas lorsqu'il n'est pas
renseigné
je suppose que c'est parceque le type DateTime est un type "valeur" et non
"reference"
Exactement. Comme DateTime est une value-type (une struct, et pas une
class), il a *toujours* une valeur. Il n'y a pas de notion de DateTime
"vide". Du moment que tu créé un DateTime, il a forcément une valeur, la
valeur par défaut étant minuit le 1 Janvier 0 (Alleluiah! ;-).
Comment faire ? j'ai pensé créer une classe qui contient un DateTime mais
je n'y parvient pas
Soit tu fais avec le fait qu'il y aura toujours une valeur dans DateTime,
soit tu ajoutes à ta classe un flag indiquant si DateTime est valide ou pas.
"cbo" a écrit dans le message de news: 45085383$0$1792$
bonjour, j'ai exactement 3 heures de pratique de C# et 8h de recherche sur Google !
je n'arrive pas a sérialiser comme je veux une classe de ce type :
[System.Xml.Serialization.XmlType("MaClasse")] public class CMaClasse { [System.Xml.Serialization.XmlAttribute("name")] public String m_strName;
[System.Xml.Serialization.XmlAttribute("birthdate")] public System.DateTime m_dtBirthdate; }
en effet, même lorsque le m_dtBirthDate n'est pas initialisé, le XML généré contient l'attribut birthdate="0001-01-01T00:00:00"
je souhaiterai que cet attribut n'apparaisse pas lorsqu'il n'est pas renseigné je suppose que c'est parceque le type DateTime est un type "valeur" et non "reference"
Exactement. Comme DateTime est une value-type (une struct, et pas une class), il a *toujours* une valeur. Il n'y a pas de notion de DateTime "vide". Du moment que tu créé un DateTime, il a forcément une valeur, la valeur par défaut étant minuit le 1 Janvier 0 (Alleluiah! ;-).
Comment faire ? j'ai pensé créer une classe qui contient un DateTime mais je n'y parvient pas
Soit tu fais avec le fait qu'il y aura toujours une valeur dans DateTime, soit tu ajoutes à ta classe un flag indiquant si DateTime est valide ou pas.
Arnaud MVP - VC
cbo
hum ! merci pour la réponse ! mais pour le flag "valide"... j'avoue que je ne comprend pas comment le faire
aurais tu un petit exemple ou un lien ?
merci en tout cas Chris
Arnaud Debaene a écrit :
"cbo" a écrit dans le message de news: 45085383$0$1792$
bonjour, j'ai exactement 3 heures de pratique de C# et 8h de recherche sur Google !
je n'arrive pas a sérialiser comme je veux une classe de ce type :
[System.Xml.Serialization.XmlType("MaClasse")] public class CMaClasse { [System.Xml.Serialization.XmlAttribute("name")] public String m_strName;
[System.Xml.Serialization.XmlAttribute("birthdate")] public System.DateTime m_dtBirthdate; }
en effet, même lorsque le m_dtBirthDate n'est pas initialisé, le XML généré contient l'attribut birthdate="0001-01-01T00:00:00"
je souhaiterai que cet attribut n'apparaisse pas lorsqu'il n'est pas renseigné je suppose que c'est parceque le type DateTime est un type "valeur" et non "reference"
Exactement. Comme DateTime est une value-type (une struct, et pas une class), il a *toujours* une valeur. Il n'y a pas de notion de DateTime "vide". Du moment que tu créé un DateTime, il a forcément une valeur, la valeur par défaut étant minuit le 1 Janvier 0 (Alleluiah! ;-).
Comment faire ? j'ai pensé créer une classe qui contient un DateTime mais je n'y parvient pas
Soit tu fais avec le fait qu'il y aura toujours une valeur dans DateTime, soit tu ajoutes à ta classe un flag indiquant si DateTime est valide ou pas.
Arnaud MVP - VC
hum ! merci pour la réponse !
mais pour le flag "valide"... j'avoue que je ne comprend pas comment le
faire
aurais tu un petit exemple ou un lien ?
merci en tout cas
Chris
Arnaud Debaene a écrit :
"cbo" <cbo@noname.nonet> a écrit dans le message de news:
45085383$0$1792$636a55ce@news.free.fr...
bonjour,
j'ai exactement 3 heures de pratique de C# et 8h de recherche sur Google !
je n'arrive pas a sérialiser comme je veux une classe de ce type :
[System.Xml.Serialization.XmlType("MaClasse")]
public class CMaClasse
{
[System.Xml.Serialization.XmlAttribute("name")]
public String m_strName;
[System.Xml.Serialization.XmlAttribute("birthdate")]
public System.DateTime m_dtBirthdate;
}
en effet, même lorsque le m_dtBirthDate n'est pas initialisé, le XML
généré contient l'attribut birthdate="0001-01-01T00:00:00"
je souhaiterai que cet attribut n'apparaisse pas lorsqu'il n'est pas
renseigné
je suppose que c'est parceque le type DateTime est un type "valeur" et non
"reference"
Exactement. Comme DateTime est une value-type (une struct, et pas une
class), il a *toujours* une valeur. Il n'y a pas de notion de DateTime
"vide". Du moment que tu créé un DateTime, il a forcément une valeur, la
valeur par défaut étant minuit le 1 Janvier 0 (Alleluiah! ;-).
Comment faire ? j'ai pensé créer une classe qui contient un DateTime mais
je n'y parvient pas
Soit tu fais avec le fait qu'il y aura toujours une valeur dans DateTime,
soit tu ajoutes à ta classe un flag indiquant si DateTime est valide ou pas.
hum ! merci pour la réponse ! mais pour le flag "valide"... j'avoue que je ne comprend pas comment le faire
aurais tu un petit exemple ou un lien ?
merci en tout cas Chris
Arnaud Debaene a écrit :
"cbo" a écrit dans le message de news: 45085383$0$1792$
bonjour, j'ai exactement 3 heures de pratique de C# et 8h de recherche sur Google !
je n'arrive pas a sérialiser comme je veux une classe de ce type :
[System.Xml.Serialization.XmlType("MaClasse")] public class CMaClasse { [System.Xml.Serialization.XmlAttribute("name")] public String m_strName;
[System.Xml.Serialization.XmlAttribute("birthdate")] public System.DateTime m_dtBirthdate; }
en effet, même lorsque le m_dtBirthDate n'est pas initialisé, le XML généré contient l'attribut birthdate="0001-01-01T00:00:00"
je souhaiterai que cet attribut n'apparaisse pas lorsqu'il n'est pas renseigné je suppose que c'est parceque le type DateTime est un type "valeur" et non "reference"
Exactement. Comme DateTime est une value-type (une struct, et pas une class), il a *toujours* une valeur. Il n'y a pas de notion de DateTime "vide". Du moment que tu créé un DateTime, il a forcément une valeur, la valeur par défaut étant minuit le 1 Janvier 0 (Alleluiah! ;-).
Comment faire ? j'ai pensé créer une classe qui contient un DateTime mais je n'y parvient pas
Soit tu fais avec le fait qu'il y aura toujours une valeur dans DateTime, soit tu ajoutes à ta classe un flag indiquant si DateTime est valide ou pas.
Arnaud MVP - VC
Cyber Sinh
Bonjour,
Je pense que tu pourrais utiliser lez types nullable de C# 2 dans ton cas : DateTime? time = null;
Test si ton DateTime à bien une valeur avec la méthode HasValue.
Voilà, j'espère avoir pu t'aider.
Cyber Sinh (http://fireblast.free.fr/)
Bonjour,
Je pense que tu pourrais utiliser lez types nullable de C# 2 dans ton cas :
DateTime? time = null;
Test si ton DateTime à bien une valeur avec la méthode HasValue.