Je crée une section de configuration personnalisée (héritant de System.Configuration.ConfigurationSection), et je me demande si je dois faire de la validation de valeur pour un ConfigurationProperty qui est un int Nullable. À savoir, dois-je faire:Dois-je valider sur une propriété de type Nullable <int>?
[ConfigurationProperty("NullableInt", IsRequired = true)]
public int? NullableInt
{
get
{
return String.IsNullOrEmpty(Convert.ToString(this["NullableInt"]))
? (int?) null
: Convert.ToInt32(this["NullableInt"]);
}
set
{
this["NullableInt"] = value.HasValue ? Convert.ToString(value) : "";
}
}
Ou puis-je faire quelque chose comme ceci:
[ConfigurationProperty("NullableInt", IsRequired = true)]
public int? NullableInt
{
get{ return Convert.ToInt32(this["NullableInt"]); }
set{ this["NullableInt"] = Convert.ToString(value); }
}
Ou est-il une meilleure façon tout ensemble?
Merci d'avance.
Dans ce cas, utiliseriez-vous Int32.Parse() sur Convert.ToInt32()? Je pense que le String.IsNullOrEmpty() va attraper n'importe quel scénario que Int32.Parse() échouerait, n'est-ce pas? –
L'un ou l'autre fonctionne ... cela dépend vraiment de votre objectif ultime mais n'oubliez pas le fait que les convertisseurs jetteront des exceptions quand l'expression n'est pas numérique (ie 'a123bcd') Donc peut-être un try try serait dans l'ordre. .et l'utilisation de Int32.Parse() pour simplifier les choses .. –