Quel est le meilleur moyen de parser un XML attribut booléen (en .NET)?
Un attribut XML déclaré que xs:boolean peut être acceptable "true", "false", "0" ou "1". Toutefois, dans .NET, Booléenne.Parse() n'acceptera "true" ou "false". Si il voit un "0" ou "1", il jette à un "Mauvais Format de" l'exception".
Donc, étant donné que, quelle est la meilleure façon d'analyser une telle valeur dans un Booléen?
(Malheureusement, je suis limité .NET 2.0 solutions, mais si v3.5 offre quelque chose, j'aimerais en entendre parler.)
Vous devez vous connecter pour publier un commentaire.
Je pense que XmlConvert dispose de toutes les méthodes de conversion entre les types language runtime et les types XML. Surtout
XmlConvert.ToBoolean
poignées exactement les valeurs booléennes (chaînes valides sont "1" ou "true" pour de vrai et de "0" ou "faux" pour de faux).À l'aide de
CBool
au lieu deBoolean.Parse
devrait faire l'affaire: même si vous aurez à les intégrer dans unetry/catch
bloc (ce qui ne serait pas nécessaire lors de l'utilisationBoolean.TryParse
), il va réussir à convertir le plus "raisonnable" des valeurs booléennes, y compris le vrai/faux et 0/1.Edit: comme l'a fait remarquer dans un commentaire, cette réponse est un peu inutile pour le C#, programmeurs, comme
CBool
est un VB-ism. Elle correspond àMicrosoft.VisualBasic.CompilerServices.Conversions::ToBoolean
, ce qui n'est pas adapté à la consommation générale. Ce qui rend la classe XMLConvert souligné dans la accepté de répondre à une alternative encore meilleure.Aseptiser les données avant de tenter de l'analyser:
Toute autre entrée que vrai, faux, 0 ou 1 sera toujours lancer un "Mauvais Format de" l'exception " (comme il faut).