La façon de stocker une liste d'objets dans les paramètres de l'application
J'ai récemment devenu familier avec le C# paramètres de l'application, et il semble cool.
Je cherchais un moyen de stocker une liste d'objets personnalisés, mais je ne pouvais pas trouver un moyen!
En fait, j'ai vu un post pour stocker int[], mais il n'était pas utile pour ce problème.
J'ai essayé de changer la configuration de la solution afin de le rendre adapté à mon problème. le fichier de configuration XML qui a été:
<Setting Name="SomeTestSetting" Type="System.Int32[]" Scope="User">
<Value Profile="(Default)" />
</Setting>
J'ai essayé de répondre à mon objet, tel que cité ci-dessous dans l'attribut type, mais il n'était pas utile, car il ne reconnaît pas mon objet... j'ai essayé le "type =" Liste et "type="n-uplet[]"
ces deux options ne m'a pas aidé!
J'ai une classe ressemble à:
class tuple
{
public tuple()
{
this.font = new Font ("Microsoft Sans Serif",8);
this.backgroundcolor_color = Color.White;
this.foregroundcolor_color = Color.Black;
}
public string log { get; set; }
public Font font { get ; set; }
public String fontName { get; set; }
public string foregroundcolor { get; set; }
public Color foregroundcolor_color { get; set; }
public string backgroundcolor { get; set; }
public Color backgroundcolor_color { get; set; }
public Boolean notification { get; set; }
}
et je veux stocker une liste en paramètre d'application.
Donc, est-il un moyen pour atteindre ce but.
Merci à l'avance.
Cheers,
regardez ici stackoverflow.com/questions/922047/... il pourrait être vous aide à...
OriginalL'auteur Ehsan | 2011-12-31
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser BinaryFormatter pour sérialiser liste de tuples, comme le tableau d'octets et en Base64 (assez efficace) pour stocker le tableau d'octets que
string
.Tout d'abord changer votre classe à quelque chose comme ça (indice:
[SerializableAttribute]
):Ajouter une propriété dans les paramètres nommés
tuples
et le type destring
.Ensuite, vous pouvez utiliser deux méthodes pour charger et enregistrer des génériques de la liste des n-uplets (
List<tuple>
):Exemple:
Je laisse
null
, chaîne vide à l'exception de la vérification jusqu'à vous.Je ne pense pas que rs (
StreamReader
) dans leSaveTuples
méthode sert n'importe quel but, donc, la deuxième à l'aide de déclaration peut être retirée en toute sécurité.vous êtes de droite. Corrigé :-).
Je vous remercie pour cette.
OriginalL'auteur Michał Powaga
De configuration de l'Application n'est pas le bon choix pour stockage les données d'exécution de l'application.
Pour cet usage, tout en
.NET
sérialisation option commeet beaucoup d'autres...
OriginalL'auteur Tigran
Je ne suis pas sûr de ce que vous êtes désireux de le faire est mieux de le faire dans les paramètres de l'application. Ce que vous voulez examiner est XDocument, et en stockant les valeurs dont vous avez besoin dans un autre fichier de configuration.
XDocument est l'une des classes permettant de manipuler des fichiers xml à l'intérieur .NET. msdn.microsoft.com/en-us/library/system.xml.linq.xdocument.aspx Si vous êtes actuellement à la recherche de stocker l'ensemble de la stucture, la sérialisation XML pourrait être votre meilleur pari si.
OriginalL'auteur Hammerstein
Vous pouvez écrire des types personnalisés à étendre
.config
fichiers. Mais ce ne sera pas le stockage de vos propres types arbitraires dans une section existante de la confirmation, mais l'ajout de sections.Une configuration personnalisée de type pourrait, en fournissant complètement logique personnalisée pour les nœuds enfants, de tenir XML sérialisé de données. Je dirais que c'est abuser de la configuration du système: il sert à stocker les paramètres ne sont pas complète.
Si c'est ce que vous voulez, il y a un exemple simple dans la documentation de
ConfigurationSection
.Définir une classe personnalisée basée sur
ConfigurationSection
avec le bon ensemble de propriétés. UtilisationConfigurationManager
pour charger config (y compris les niveaux de l'utilisateur) et, ultérieurement, enregistrez-la.OriginalL'auteur Richard