GenericEnumConverter 类

定义

在字符串和枚举类型之间进行转换。

public ref class GenericEnumConverter sealed : System::Configuration::ConfigurationConverterBase
public sealed class GenericEnumConverter : System.Configuration.ConfigurationConverterBase
type GenericEnumConverter = class
    inherit ConfigurationConverterBase
Public NotInheritable Class GenericEnumConverter
Inherits ConfigurationConverterBase
继承

示例

下面的代码示例演示如何访问使用 GenericEnumConverter 类型的自定义节属性。

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);
            }
        }
    }
}
Imports System.IO
Imports System.ComponentModel
Imports System.Configuration




NotInheritable Public Class UsingGenericEnumConverter
    
    Public Shared Sub GetPermission() 
        Try
            Dim section As CustomSection = _
            ConfigurationManager.GetSection("CustomSection")
            Console.WriteLine("Default Permission: {0}", _
            section.Permission.ToString())
        Catch e As System.Exception
            Console.WriteLine(e.Message)
        End Try
    
    End Sub
    
    
    Public Shared Sub SetPermission() 
        Try
            Dim config _
            As System.Configuration.Configuration = _
            ConfigurationManager.OpenExeConfiguration( _
            ConfigurationUserLevel.None)
            
            Dim section As CustomSection = _
            config.Sections.Get("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 e As System.Exception
            Console.WriteLine(e.Message)
        End Try
    
    End Sub
End Class

下面的代码示例演示如何定义在上一示例中访问的自定义枚举器属性。 请注意,无需指定类型; GenericEnumConverter 它由系统隐式调用。


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;
    }
}

Public Enum Permissions
    FullControl = 0
    Modify = 1
    ReadExecute = 2
    Read = 3
    Write = 4
    SpecialPermissions = 5
End Enum 'Permissions


<ConfigurationProperty("permission", _
DefaultValue:=Permissions.Read)> _
Public Property Permission() As Permissions
    Get
        Return CType(Me("permission"), Permissions)
    End Get

    Set(ByVal value As Permissions)
        Me("permission") = Value
    End Set
End Property

以下示例是上一个示例使用的配置摘录。

<?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>  

注解

与所有其他配置转换器类型一样,此类型会将配置文件中找到的字符串与相关的强类型属性相互转换。

具体而言, GenericEnumConverter 对象将 String 赋给配置属性的值转换为值, Enum 反之亦然。

构造函数

GenericEnumConverter(Type)

初始化 GenericEnumConverter 类的新实例。

方法

CanConvertFrom(ITypeDescriptorContext, Type)

确定是否允许此转换。

(继承自 ConfigurationConverterBase)
CanConvertFrom(Type)

返回该转换器是否可以将给定类型的对象转换为此转换器的类型。

(继承自 TypeConverter)
CanConvertTo(ITypeDescriptorContext, Type)

确定是否允许此转换。

(继承自 ConfigurationConverterBase)
CanConvertTo(Type)

返回此转换器是否可将该对象转换为指定的类型。

(继承自 TypeConverter)
ConvertFrom(ITypeDescriptorContext, CultureInfo, Object)

String 转换为 Enum 类型。

ConvertFrom(Object)

将给定值转换为此转换器的类型。

(继承自 TypeConverter)
ConvertFromInvariantString(ITypeDescriptorContext, String)

使用不变区域性和指定上下文将给定字符串转换为此转换器的类型。

(继承自 TypeConverter)
ConvertFromInvariantString(String)

使用不变区域性将给定字符串转换为此转换器的类型。

(继承自 TypeConverter)
ConvertFromString(ITypeDescriptorContext, CultureInfo, String)

使用指定的上下文和区域性信息将给定的文本转换为对象。

(继承自 TypeConverter)
ConvertFromString(ITypeDescriptorContext, String)

使用指定的上下文将给定的文本转换为对象。

(继承自 TypeConverter)
ConvertFromString(String)

将指定文本转换为对象。

(继承自 TypeConverter)
ConvertTo(ITypeDescriptorContext, CultureInfo, Object, Type)

Enum 类型转换为 String 值。

ConvertTo(Object, Type)

使用参数将给定的值对象转换为指定的类型。

(继承自 TypeConverter)
ConvertToInvariantString(ITypeDescriptorContext, Object)

使用指定的上下文将指定的值转换为区域性不变的字符串表示形式。

(继承自 TypeConverter)
ConvertToInvariantString(Object)

将指定值转换为区域性不变的字符串表示形式。

(继承自 TypeConverter)
ConvertToString(ITypeDescriptorContext, CultureInfo, Object)

使用指定的上下文和区域性信息将给定的值转换为字符串表示形式。

(继承自 TypeConverter)
ConvertToString(ITypeDescriptorContext, Object)

使用给定的上下文将给定的值转换为字符串表示形式。

(继承自 TypeConverter)
ConvertToString(Object)

将指定值转换为字符串表示形式。

(继承自 TypeConverter)
CreateInstance(IDictionary)

在给定 Object 的一组属性值的情况下重新创建该对象。

(继承自 TypeConverter)
CreateInstance(ITypeDescriptorContext, IDictionary)

给定该对象的一组属性值,使用指定上下文创建与此 TypeConverter 相关联的类型的实例。

(继承自 TypeConverter)
Equals(Object)

确定指定对象是否等于当前对象。

(继承自 Object)
GetConvertFromException(Object)

返回当转换无法执行时所引发的异常。

(继承自 TypeConverter)
GetConvertToException(Object, Type)

返回当转换无法执行时所引发的异常。

(继承自 TypeConverter)
GetCreateInstanceSupported()

返回更改此对象的值是否求调用 CreateInstance(IDictionary) 方法来创建新值。

(继承自 TypeConverter)
GetCreateInstanceSupported(ITypeDescriptorContext)

返回一个结果,即更改此对象上的某个值是否需要调用 CreateInstance(IDictionary) 以使用指定的上下文创建新值。

(继承自 TypeConverter)
GetHashCode()

作为默认哈希函数。

(继承自 Object)
GetProperties(ITypeDescriptorContext, Object)

使用指定的上下文返回值参数指定的数组类型的属性的集合。

(继承自 TypeConverter)
GetProperties(ITypeDescriptorContext, Object, Attribute[])

使用指定的上下文和特性返回由该值参数指定的数组类型的属性集合。

(继承自 TypeConverter)
GetProperties(Object)

返回由值参数指定的数组类型的属性集合。

(继承自 TypeConverter)
GetPropertiesSupported()

返回此对象是否支持属性。

(继承自 TypeConverter)
GetPropertiesSupported(ITypeDescriptorContext)

通过使用指定的上下文,返回此对象是否支持属性。

(继承自 TypeConverter)
GetStandardValues()

从默认的上下文返回此类型转换器设计用于的数据类型的标准值集合。

(继承自 TypeConverter)
GetStandardValues(ITypeDescriptorContext)

当与格式上下文一起提供时,返回此类型转换器设计用于的数据类型的标准值集合。

(继承自 TypeConverter)
GetStandardValuesExclusive()

返回从 GetStandardValues() 返回的标准值的集合是否为独占列表。

(继承自 TypeConverter)
GetStandardValuesExclusive(ITypeDescriptorContext)

使用指定的上下文返回从 GetStandardValues() 返回的标准值的集合是否为可能值的独占列表。

(继承自 TypeConverter)
GetStandardValuesSupported()

返回此对象是否支持可以从列表中选取的标准值集。

(继承自 TypeConverter)
GetStandardValuesSupported(ITypeDescriptorContext)

使用指定的上下文返回此对象是否支持可以从列表中选取的标准值集。

(继承自 TypeConverter)
GetType()

获取当前实例的 Type

(继承自 Object)
IsValid(ITypeDescriptorContext, Object)

返回给定的值对象是否对此类型和对指定的上下文有效。

(继承自 TypeConverter)
IsValid(Object)

返回给定值对象对于此类型是否有效。

(继承自 TypeConverter)
MemberwiseClone()

创建当前 Object 的浅表副本。

(继承自 Object)
SortProperties(PropertyDescriptorCollection, String[])

对属性的集合进行排序。

(继承自 TypeConverter)
ToString()

返回表示当前对象的字符串。

(继承自 Object)

适用于

另请参阅