Type personnalisé les paramètres de l'application dans ASP.NET
Seulement maintenant, je suis tombé sur ApplicationSettings .NET WinForms qui pourrait gérer les types complexes.
Actuellement, je suis en utilisant AppSettings dans mon ASP.NET WebForms qui peut gérer seule chaîne.
Puis-je utiliser ApplicationSettings dans les Formulaires web? Si oui, comment?
L'Utilisation Du Web.config à la place.
Je pense que ce que vous demandez est "Êtes-vous en mesure de Stocker des Types Plus Complexes d'une manière similaire à AppSettings à l'intérieur d'une Application Web ? Si oui, alors vous devez avoir un coup d'oeil à "Ressources Incorporées", plutôt que de les ranger dans le Web.Config
stackoverflow.com/questions/6288943/... a déclenché cette question. lire les commentaires. je suis toujours sceptique
Je pense que ce que vous demandez est "Êtes-vous en mesure de Stocker des Types Plus Complexes d'une manière similaire à AppSettings à l'intérieur d'une Application Web ? Si oui, alors vous devez avoir un coup d'oeil à "Ressources Incorporées", plutôt que de les ranger dans le Web.Config
stackoverflow.com/questions/6288943/... a déclenché cette question. lire les commentaires. je suis toujours sceptique
OriginalL'auteur naveen | 2011-06-09
Vous devez vous connecter pour publier un commentaire.
L'idée de base:
Dans un autre projet, créer des classes qui tiendra vos paramètres personnalisés. Par exemple:
Construire le projet contenant les classes.
Aller à la Paramètres onglet Propriétés du Projet. Il va dire qu'il n'existe pas encore de fichier de paramètres et de vous demander si vous voulez le créer.
Ajouter un nouveau fichier de paramètres. Dans le champ type, sélectionnez Parcourir et tapez le nom complet de la classe. Par exemple:
ClassLibrary.EndPointCollection
. Sauver et reconstruire le projet.Cliquez sur le bouton editer pour la valeur de réglage. (Notez que cela ne sera pas disponible si les classes faite à l'étape précédente sont dans le même projet). Utiliser l'INTERFACE utilisateur pour modifier les paramètres.
Si vous ouvrez le web.config /app.config fichier, vous verrez quelque chose comme ceci:
Enfin, à la lecture de ces paramètres à partir de votre code, il suffit d'utiliser
Le designer a créé, en coulisses, les objets fortement typés pour permettre à la ci-dessus pour travailler. Vous pouvez voir tous les détails dans la
Settings.Designer.cs
fichier.Bottom line: vous pouvez faire toutes sortes de personnalisé les paramètres de type, tant que ces paramètres ont XmlSerializable ou de type de convertisseur. Cette technique fonctionne sur les Applications Web, WinForms, WPF, les Applications de Console etc.
Dans le cas où personne d'autre n'a pas l'éditeur de
...
bouton de la raison peut être que la classe doit être dans un projet différent de celui où les paramètres de est situé. C'est la façon dont la réponse est structuré, mais il n'a pas l'indiquer clairement. C'est une limitation connue" suivant: msdn.microsoft.com/en-us/library/wabtadw6(v=vs. 100).aspxJe pense que, techniquement, la classe doit être dans un autre namespace pour le projet; il semble encore fonctionner si c'est dans le même projet, mais avec un espace de noms différent.
Juste après avoir essayé de mettre en œuvre cette solution, je peux ne semblent jamais à faire le réglage de l'éditeur, indépendamment de si la classe est dans un autre projet ou un autre espace de noms dans le même projet. Cette solution travaillent encore dans VS2012 & .Net 4.5? Existe-il des mesures supplémentaires ne sont pas mentionnés?
J'ai réussi a travers ces étapes, et ajouté un peu de paramètres à l'aide de l'éditeur. cependant, je ne vois pas sérialisé paramètres dans mon web.config. En fait, il semble que, après la touche "ok" dans l'éditeur de l'assistant, les paramètres ne sont pas réellement enregistrés. il n'y a pas de "sauver" et de faire "enregistrer tout" dans vs, semble juste réinitialiser le réglage
OriginalL'auteur
Voici une variation sur la accepté de répondre, à l'aide de la suite définie par l'utilisateur de la classe pour représenter un paramètre:
La accepté de répondre à propose l'utilisation d'une collection spécialisée de la classe,
EndPointCollection
de tenir des paramètres. Cependant, je ne pense pas que cela est nécessaire; une matrice de type (EndPoint[]
) semble également fonctionner.Toutefois, en tapant le type de tableau dans le type de navigateur ne fonctionne pas; à la place, vous pouvez spécifier le type directement dans le .les paramètres de fichier (à l'aide d'un éditeur de texte):
Aussi, si la valeur de l'éditeur illustré dans l'acceptation réponse n'est pas disponible, vous pouvez au lieu de taper directement les valeurs dans le champ de valeur à l'aide de XML:
Noter que les déclarations d'espace de noms XML Visual Studio génère ne sont pas nécessaires dans le fichier XML, comme indiqué ci-dessus.
readonly
champ). Ce qui signifie que malheureusement, pour beaucoup de types de types définis par l'utilisateur quelqu'un voudrait stocker dans les paramètres -- simples, par exemple, immuable valeur-les types de stockage -- cette technique très utile ne peut pas être utilisé. 🙁OriginalL'auteur