Comment puis-je définir web personnalisé.sections de configuration avec le potentiel de l'enfant des éléments et des attributs pour les propriétés?
Les applications web que je développe souvent besoin de co-dépendante des paramètres de configuration et il y a aussi des paramètres à changer à mesure que nous nous déplaçons entre chacun de nos milieux.
Tous nos paramètres sont actuellement de simples paires clé-valeur, mais il serait utile de créer des sections de configuration alors qu'il est évident lorsque les deux valeurs doivent se modifier ou lorsque les paramètres besoin de changer pour un environnement.
Quelle est la meilleure façon de créer des sections de configuration et sont là des considérations particulières à prendre lors de la récupération des valeurs?
Vous devez vous connecter pour publier un commentaire.
À l'aide d'attributs, enfant sections de configuration et les contraintes
Il y a aussi la possibilité d'utiliser des attributs qui prend automatiquement soin de la plomberie, ainsi que la fourniture de la capacité de facilement ajouter des contraintes.
Je présente ici un exemple de code que j'utilise moi-même dans un de mes sites. Avec une contrainte, je dictent la quantité maximale d'espace disque un utilisateur est autorisé à utiliser.
MailCenterConfiguration.cs:
Cela est mis en place dans le web.config comme
Éléments enfants
L'enfant de l'élément xml mail est créé dans le même .cs fichier comme celui ci-dessus. Ici j'ai ajouté des contraintes sur le port. Si le port est affecté d'une valeur n'est pas dans cette gamme, le moteur d'exécution de se plaindre quand la config est chargé.
MailCenterConfiguration.cs:
Utilisation
Pour ensuite les utiliser en pratique dans le code, tout ce que vous avez à faire est de créer une instance de la MailCenterConfigurationObject, ce sera automatiquement lire les sections pertinentes du web.config.
MailCenterConfiguration.cs
AnotherFile.cs
De vérifier la validité
Je l'ai mentionné précédemment que le runtime de se plaindre quand la configuration est chargée et certaines données ne respectent pas les règles que vous avez mis en place (par exemple dans MailCenterConfiguration.cs). J'ai tendance à vouloir en savoir ces choses dès que possible quand mon site s'allume. Une façon de résoudre ce problème consiste à charger la configuration dans _Global.asax.cx.Application_Start_ , si la configuration n'est pas valide, vous en serez informé dans les moyens d'une exception. Votre site ne démarre pas et à la place vous sera présenté détaillée exception de l'information dans le Le jaune de l'écran de la mort.
Mondiale.asax.cs
Quick and Dirty:
D'abord créer votre ConfigurationSection et ConfigurationElement classes:
Puis laissez-le cadre savez comment gérer votre configuration de classes dans web.config:
Et ajouter votre propre section ci-dessous:
Alors vous pouvez l'utiliser dans votre code ainsi:
Il y a un excellent exemple sur MSDN à l'aide de
ConfigurationCollection
et .NET 4.5 pour ce qui est des rubriques personnalisées dans le web.config qui a une liste de config éléments.La configuration personnalisée sont assez maniable chose et souvent les applications jusqu'à la fin avec une demande pour une solution extensible.
Pour .NET 1.1, veuillez consulter l'article http://aspnet.4guysfromrolla.com/articles/020707-1.aspx
Remarque: La solution ci-dessus fonctionne pour .NET 2.0.
Pour .NET 2.0 solution spécifique, veuillez consulter l'article http://aspnet.4guysfromrolla.com/articles/032807-1.aspx
Vous pouvez accomplir cela avec les Gestionnaires de Section. Il y a une vue d'ensemble de la façon d'écrire une à http://www.codeproject.com/KB/aspnet/ConfigSections.aspx cependant, il se réfère à l'application.config qui serait à peu près la même que l'écriture de l'un pour web.config. Cela vous permettra de l'essentiel de disposer de votre propre arborescence XML dans le fichier de config et faire un peu plus de la configuration avancée.
Les plus méthode simple, qui je trouve, est à l'aide de section appSettings.
Ajouter sur le Web.config suivantes:
Accès à partir de votre code