Je vous écris ma propre section de configuration personnalisée et ont un ConfigurationProperty défini dans un ConfigurationElement comme ceci:insuffisance RegexStringValidator inattendue dans ConfigurationProperty dans ConfigurationElement personnalisé
[ConfigurationProperty("startTime", IsRequired = false)]
[RegexStringValidator("\\d{2}:\\d{2}:\\d{2}")]
public string StartTime
{
get
{
return (string) this["startTime"];
}
set
{
this["startTime"] = value;
}
}
Je comptais pouvoir entrer des valeurs telles que « 23 : 30: 00 "dans l'attribut startTime du ConfigurationElement que j'ai créé. Cependant, chaque fois que j'essaie de charger ma section de configuration, j'obtiens une exception ConfigurationErrorsException avec le message:
La valeur de la propriété 'startTime' n'est pas valide. L'erreur est la suivante: La valeur n'est pas conforme à la chaîne de regex de validation '\ d {2}: \ d {2}: \ d {2}'.
Je dois admettre que je lutte toujours avec des expressions régulières, mais celui-ci est assez simple et je l'ai écrit un test pour vérifier que mon modèle devrait valider les types de valeurs que je me attends:
var regex = new Regex(@"\d{2}:\d{2}:\d{2}", RegexOptions.Compiled);
var isSuccess = regex.Match("23:30:00").Success;
isSuccess évalue à True, donc je ne suis pas tout à fait sûr pourquoi le ConfigurationErrorsException est levé.
En tant que référence, voici ma section de configuration de mon fichier App.config:
<windowsServiceConfiguration>
<schedule startTime = "23:00:00" />
</windowsServiceConfiguration>
Toute aide à pourquoi je ne peux pas obtenir le RegexStringValidator de travailler serait apprécié. Merci.
En fait, il me semble avoir un problème avec les validateurs en général. J'ai un problème similaire avec le TimeSpanValidator. Je décore une propriété et fixe une gamme. La valeur dans le fichier de configuration est définitivement dans la fourchette et je reçois une exception disant que ma valeur est hors limites. – Jed