Exportieren (0) Drucken
Alle erweitern

GenericEnumConverter-Klasse

Aktualisiert: November 2007

Konvertiert zwischen einer Zeichenfolge und einem Enumerationstyp.

Namespace:  System.Configuration
Assembly:  System.Configuration (in System.Configuration.dll)

public sealed class GenericEnumConverter : ConfigurationConverterBase
public final class GenericEnumConverter extends ConfigurationConverterBase
public final class GenericEnumConverter extends ConfigurationConverterBase

Dieser Typ konvertiert wie alle anderen Typen von Konfigurationskonvertern in der Konfigurationsdatei gefundene Zeichenfolgen in und aus den zugehörigen stark typisierten Eigenschaften.

Insbesondere konvertiert das GenericEnumConverter-Objekt einen einer Konfigurationseigenschaft zugewiesenen String-Wert in einen Enum-Wert und umgekehrt.

Im folgenden Codebeispiel wird veranschaulicht, wie auf eine benutzerdefinierte Abschnittseigenschaft zugegriffen wird, die den GenericEnumConverter-Typ verwendet.

using System;
using System.IO;
using System.ComponentModel;
using System.Configuration;

namespace Samples.AspNet
{

    public sealed class UsingGenericEnumConverter
    {
        public static void GetPermission()
        {
            try
            {
                CustomSection section =
                    ConfigurationManager.GetSection("CustomSection")
                    as CustomSection;

                Console.WriteLine("Default Permission: {0}", 
                    section.Permission.ToString());
            }
            catch (System.Exception e)
            {
                Console.WriteLine(e.Message);
            }
        }

        public static void SetPermission()
        {
            try
            {
                System.Configuration.Configuration config =
                  ConfigurationManager.OpenExeConfiguration(
                  ConfigurationUserLevel.None);

                CustomSection section =
                    config.Sections.Get("CustomSection")
                    as CustomSection;

                section.Permission = 
                    CustomSection.Permissions.FullControl;

                section.SectionInformation.ForceSave = true;
                config.Save(ConfigurationSaveMode.Full); 
                config.Save();

                Console.WriteLine("Current Protection: {0}",
                    section.Permission.ToString());
            }
            catch (System.Exception e)
            {
                Console.WriteLine(e.Message);
            }
        }
    }
}


Im folgenden Codebeispiel wird veranschaulicht, wie eine benutzerdefinierte Enumeratoreigenschaft definiert wird, auf die im vorherigen Beispiel zugegriffen wurde. Beachten Sie, dass der GenericEnumConverter-Typ nicht angegeben werden muss. Er wird vom System implizit aufgerufen.


public enum Permissions
{
    FullControl         = 0,
    Modify              = 1,
    ReadExecute         = 2,
    Read                = 3,
    Write               = 4,
    SpecialPermissions  = 5
}

[ConfigurationProperty("permission", DefaultValue = Permissions.Read)]
public Permissions Permission
{
    get
    {
        return (Permissions)this["permission"];
    }

    set
    {
        this["permission"] = value;
    }

}


Im folgenden Beispiel finden Sie einen Konfigurationsauszug, wie er im vorherigen Beispiel verwendet wurde.

<?xml version="1.0" encoding="utf-8"?>
<configuration>

  <configSections>
    <section name="CustomSection" 
      type="Samples.AspNet.CustomSection, 
      ConfigurationConverters, 
      Version=1.0.0.0, Culture=neutral, 
      PublicKeyToken=null" 
      allowDefinition="Everywhere" 
      allowExeDefinition="MachineToApplication" 
      restartOnExternalChanges="true" />
  </configSections>
    
  <CustomSection fileName="default.txt" maxIdleTime="90" timeDelay="infinite" cdStr="str0, str1" permission="Read" maxUsers="Infinite"/>

</configuration>

Alle öffentlichen static (Shared in Visual Basic)-Member dieses Typs sind threadsicher. Bei Instanzmembern ist die Threadsicherheit nicht gewährleistet.

Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98

.NET Framework und .NET Compact Framework unterstützen nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.

.NET Framework

Unterstützt in: 3.5, 3.0, 2.0

Community-Beiträge

HINZUFÜGEN
Anzeigen:
© 2015 Microsoft