Question

J'utilise la classe Settings dans mon projet .NET. Je remarque dans l'éditeur que seuls certains types sont disponibles pour être utilisés en tant que types pour les propriétés individuelles de la classe Settings. Et si je voulais avoir une propriété qui était une énumération de mon code ou une collection générique par exemple? Comment pourrais-je mettre en œuvre cela?

Je suppose que je peux le faire dans un fichier séparé en utilisant le mécanisme de classe partiel (puisque Settings est déjà défini comme classe partielle), mais je veux voir si quelqu'un est d'accord avec cela et s'il peut y avoir un moyen de le faire. faites-le dans l'éditeur.

Était-ce utile?

La solution

Créer un nouveau " Paramètres " fichier pour ajouter un type de choix complexe / défini par l'utilisateur. Voici un guide pratique pour un Enum.

Étape 1 . Créer un fichier de paramètres

alt text

Étape 2 . Recherchez le type

texte alternatif

Étape 3 . Sélectionnez le type (Namespace.TypeName)

alt text

Étape 4 . Ta da - Fait

texte alt

Autres conseils

Pour que la classe personnalisée apparaisse dans cette liste, assurez-vous qu’elle possède un constructeur par défaut comme l’une de ses options de construction. J'ai appris cela à la dure

Pour répondre au commentaire / à la question de Jeffrey sur la possibilité d’inscrire des listes génériques dans un fichier de paramètres, la réponse est oui. Vous devez juste éditer le fichier de paramètres xml manuellement. Par exemple, si j'ai la classe suivante:

public class UrlAlias
{
    public string Name { get; set; }
    public string BaseUrl { get; set; }
}

Je peux créer une liste de ceux-ci en cliquant avec le bouton droit de la souris sur mon fichier de paramètres et en sélectionnant Ouvrir avec ...

Choisissez ensuite XML / Text Editor et définissez le "Type". valeur du nom de classe complet, c'est-à-dire:

Type="System.Collections.Generic.List`1[MyProject.SomeNamespace.UrlAlias]"

Les paramètres XML complets ressembleraient à:

<?xml version='1.0' encoding='utf-8'?>
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)" GeneratedClassNamespace="MyProject.Properties" GeneratedClassName="Settings">
 <Profiles />
  <Settings>
    <Setting Name="UrlAliases" Type="System.Collections.Generic.List`1[CommonAddin.Data.DataSource.UrlAlias]" Scope="User">
      <Value Profile="(Default)"></Value>
    </Setting>
  </Settings>
</SettingsFile>

Une fois cela fait, vous devriez avoir une liste correctement configurée de l'objet de paramètres personnalisés que vous avez créé.

Le faire dans un fichier séparé en tant que partie d’une classe partielle est tout à fait acceptable.

Si vous souhaitez être en mesure de renseigner des objets complexes via des fichiers de configuration, nous vous suggérons d’utiliser certaines dépendances de Dependency Injection Framework. Spring.Net.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top