J'ai la classe suivante qui implémente IXmlSerializable. Lors de l'implémentation de WriteXml(), je dois gérer le cas où les membres de la chaîne de cette classe peuvent être des valeurs nulles. Quelle est la meilleure façon de gérer cela?gérer les valeurs null pour la chaîne lors de l'implémentation de l'interface IXmlSerializable
Actuellement, j'utilise le constructeur par défaut dans lequel toutes les propriétés de chaîne sont initialisées pour les valeurs de chaînes vides. De cette façon, lorsque WriteXml() est appelée, la chaîne ne sera pas nulle.
Une autre façon que je pourrais faire est de vérifier en utilisant String.IsNullOrEmpty avant d'écrire chaque chaîne en XML.
Des suggestions pour améliorer ce code?
public sealed class FaxSender : IXmlSerializable
{
#region Public Constants
private const string DEFAULT_CLASS_NAME = "FaxSender";
#endregion Public Constants
#region Public Properties
public string Name { get; set; }
public string Organization { get; set; }
public string PhoneNumber { get; set; }
public string FaxNumber { get; set; }
public string EmailAddress { get; set; }
#endregion Public Properties
#region Public Methods
#region Constructors
public FaxSender()
{
Name = String.Empty;
Organization = String.Empty;
PhoneNumber = String.Empty;
FaxNumber = String.Empty;
EmailAddress = String.Empty;
}
public FaxSender(
string name,
string organization,
string phoneNumber,
string faxNumber,
string emailAddress)
{
Name = name;
Organization = organization;
PhoneNumber = phoneNumber;
FaxNumber = faxNumber;
EmailAddress = emailAddress;
}
#endregion Constructors
#region IXmlSerializable Members
public System.Xml.Schema.XmlSchema GetSchema()
{
throw new NotImplementedException();
}
public void ReadXml(System.Xml.XmlReader reader)
{
throw new NotImplementedException();
}
public void WriteXml(System.Xml.XmlWriter xmlWriter)
{
try
{
// <sender>
xmlWriter.WriteStartElement("sender");
// Write the name of the sender as an element.
xmlWriter.WriteElementString(
"name",
this.Name.ToString(CultureInfo.CurrentCulture));
// Write the organization of the sender as an element.
xmlWriter.WriteElementString(
"organization",
this.Organization.ToString(CultureInfo.CurrentCulture));
// Write the phone number of the sender as an element.
xmlWriter.WriteElementString(
"phone_number",
this.PhoneNumber.ToString(CultureInfo.CurrentCulture));
// Write the fax number of the sender as an element.
xmlWriter.WriteElementString(
"fax_number",
this.FaxNumber.ToString(CultureInfo.CurrentCulture));
// Write the email address of the sender as an element.
xmlWriter.WriteElementString(
"email_address",
this.EmailAddress.ToString(CultureInfo.CurrentCulture));
// </sender>
xmlWriter.WriteEndElement();
}
catch
{
// Rethrow any exceptions.
throw;
}
}
#endregion IXmlSerializable Members
#endregion Public Methods
}
des suggestions? –