ConfigurationConverterBase Classe
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Classe base per i tipi di convertitori della configurazione.
public ref class ConfigurationConverterBase abstract : System::ComponentModel::TypeConverter
public abstract class ConfigurationConverterBase : System.ComponentModel.TypeConverter
type ConfigurationConverterBase = class
inherit TypeConverter
Public MustInherit Class ConfigurationConverterBase
Inherits TypeConverter
- Ereditarietà
- Derivato
Esempio
Gli esempi di codice seguenti illustrano come derivare dalla ConfigurationConverterBase classe per creare un tipo di convertitore personalizzato TimeSpan . Gli esempi illustrano anche come usare questo tipo in una sezione personalizzata.
Nell'esempio di codice seguente viene illustrato come creare un tipo di convertitore personalizzato TimeSpan dalla ConfigurationConverterBase classe.
using System;
using System.Collections.Generic;
using System.Text;
using System.Configuration;
using System.Globalization;
using System.ComponentModel;
public sealed class CustomTimeSpanMinutesConverter :
ConfigurationConverterBase
{
internal bool ValidateType(object value,
Type expected)
{
bool result;
if ((value != null) &&
(value.GetType() != expected))
result = false;
else
result = true;
return result;
}
public override bool CanConvertTo(
ITypeDescriptorContext ctx, Type type)
{
return (type == typeof(string));
}
public override bool CanConvertFrom(
ITypeDescriptorContext ctx, Type type)
{
return (type == typeof(string));
}
public override object ConvertTo(
ITypeDescriptorContext ctx, CultureInfo ci,
object value, Type type)
{
ValidateType(value, typeof(TimeSpan));
long data = (long)(((TimeSpan)value).TotalMinutes);
return data.ToString(CultureInfo.InvariantCulture);
}
public override object ConvertFrom(
ITypeDescriptorContext ctx, CultureInfo ci, object data)
{
long min = long.Parse((string)data,
CultureInfo.InvariantCulture);
return TimeSpan.FromMinutes((double)min);
}
}
Imports System.Collections.Generic
Imports System.Text
Imports System.Configuration
Imports System.Globalization
Imports System.ComponentModel
NotInheritable Public Class CustomTimeSpanMinutesConverter
Inherits ConfigurationConverterBase
Friend Function ValidateType(ByVal value As Object, _
ByVal expected As Type) As Boolean
Dim result As Boolean
If Not (value Is Nothing) _
AndAlso value.ToString() <> expected.ToString() Then
result = False
Else
result = True
End If
Return result
End Function 'ValidateType
Public Overrides Function CanConvertTo( _
ByVal ctx As ITypeDescriptorContext, _
ByVal type As Type) As Boolean
Return (type.ToString() = GetType(String).ToString())
End Function 'CanConvertTo
Public Overrides Function CanConvertFrom( _
ByVal ctx As ITypeDescriptorContext, _
ByVal type As Type) As Boolean
Return (type.ToString() = GetType(String).ToString())
End Function 'CanConvertFrom
Public Overrides Function ConvertTo( _
ByVal ctx As ITypeDescriptorContext, _
ByVal ci As CultureInfo, ByVal value As Object, _
ByVal type As Type) As Object
ValidateType(value, GetType(TimeSpan))
Dim data As Long = _
Fix(CType(value, TimeSpan).TotalMinutes)
Return data.ToString(CultureInfo.InvariantCulture)
End Function 'ConvertTo
Public Overrides Function ConvertFrom( _
ByVal ctx As ITypeDescriptorContext, _
ByVal ci As CultureInfo, ByVal data As Object) As Object
Dim min As Long = _
Long.Parse(CStr(data), CultureInfo.InvariantCulture)
Return TimeSpan.FromMinutes(System.Convert.ToDouble(min))
End Function 'ConvertFrom
End Class
Nell'esempio di codice seguente viene illustrato come definire una sezione personalizzata che usa il convertitore personalizzato TimeSpan precedente.
// Define a custom section.
public sealed class CustomSection :
ConfigurationSection
{
public CustomSection()
{
}
[ConfigurationProperty("fileName", DefaultValue=" default.txt ")]
[TypeConverter(typeof(WhiteSpaceTrimStringConverter))]
public String FileName
{
get
{
return (String)this["fileName"];
}
set
{
this["fileName"] = value;
}
}
[ConfigurationProperty("maxIdleTime")]
[TypeConverter(typeof(CustomizedTimeSpanMinutesConverter))]
public TimeSpan MaxIdleTime
{
get
{
return (TimeSpan)this["maxIdleTime"];
}
set
{
this["maxIdleTime"] = value;
}
}
[ConfigurationProperty("timeDelay",
DefaultValue = "infinite")]
[TypeConverter(typeof(InfiniteTimeSpanConverter))]
public TimeSpan TimeDelay
{
get
{
return (TimeSpan)this["timeDelay"];
}
set
{
this["timeDelay"] = value;
}
}
[ConfigurationProperty("cdStr",
DefaultValue = "str0, str1",
IsRequired = true)]
[TypeConverter(typeof(
CommaDelimitedStringCollectionConverter))]
public StringCollection CdStr
{
get
{
return (StringCollection)this["cdStr"];
}
set
{
this["cdStr"] = value;
}
}
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;
}
}
[ConfigurationProperty("maxUsers", DefaultValue="infinite")]
[TypeConverter(typeof(InfiniteIntConverter))]
public int MaxUsers
{
get
{
return (int)this["maxUsers"];
}
set
{
this["maxUsers"] = value;
}
}
}
}
' Define a custom section.
NotInheritable Public Class CustomSection
Inherits ConfigurationSection
Public Sub New()
End Sub
<ConfigurationProperty("fileName", _
DefaultValue:=" default.txt "), _
TypeConverter(GetType(WhiteSpaceTrimStringConverter))> _
Public Property FileName() As String
Get
Return CStr(Me("fileName"))
End Get
Set(ByVal value As String)
Me("fileName") = value
End Set
End Property
<ConfigurationProperty("maxIdleTime"), _
TypeConverter(GetType(CustomizedTimeSpanMinutesConverter))> _
Public Property MaxIdleTime() As TimeSpan
Get
Return CType(Me("maxIdleTime"), TimeSpan)
End Get
Set(ByVal value As TimeSpan)
Me("maxIdleTime") = value
End Set
End Property
<ConfigurationProperty("timeDelay", _
DefaultValue:="infinite"), _
TypeConverter(GetType(InfiniteTimeSpanConverter))> _
Public Property TimeDelay() As TimeSpan
Get
Return CType(Me("timeDelay"), TimeSpan)
End Get
Set(ByVal value As TimeSpan)
Me("timeDelay") = Value
End Set
End Property
<ConfigurationProperty("cdStr", _
DefaultValue:="str0, str1", _
IsRequired:=True), _
TypeConverter(GetType(CommaDelimitedStringCollectionConverter))> _
Public Property CdStr() As StringCollection
Get
Return CType(Me("cdStr"), StringCollection)
End Get
Set(ByVal value As StringCollection)
Me("cdStr") = value
End Set
End Property
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
<ConfigurationProperty("maxUsers", _
DefaultValue:="infinite"), _
TypeConverter(GetType(InfiniteIntConverter))> _
Public Property MaxUsers() As Integer
Get
Return Fix(Me("maxUsers"))
End Get
Set(ByVal value As Integer)
Me("maxUsers") = Value
End Set
End Property
End Class
Nell'esempio di codice seguente viene illustrato come creare e modificare un file di configurazione usando la sezione personalizzata precedente.
using System;
using System.Collections.Generic;
using System.Text;
using System.Configuration;
using System.Globalization;
using System.ComponentModel;
namespace Samples.AspNet
{
// Define a custom section.
public sealed class CustomSection :
ConfigurationSection
{
public CustomSection()
{ }
[ConfigurationProperty("fileName", DefaultValue = "default.txt",
IsRequired = true, IsKey = false)]
[StringValidator(InvalidCharacters = " ~!@#$%^&*()[]{}/;'\"|\\",
MinLength = 1, MaxLength = 60)]
public string FileName
{
get
{
return (string)this["fileName"];
}
set
{
this["fileName"] = value;
}
}
[ConfigurationProperty("maxIdleTime")]
[TypeConverter(typeof(TsMinutesConverter))]
public TimeSpan MaxIdleTime
{
get
{
return (TimeSpan)this["maxIdleTime"];
}
set
{
this["maxIdleTime"] = value;
}
}
}
public sealed class TsMinutesConverter :
ConfigurationConverterBase
{
internal bool ValidateType(object value, Type expected)
{
bool result;
if ((value != null) &&
(value.GetType() != expected))
result = false;
else
result = true;
return result;
}
public override bool CanConvertTo(
ITypeDescriptorContext ctx, Type type)
{
return (type == typeof(string));
}
public override bool CanConvertFrom(
ITypeDescriptorContext ctx, Type type)
{
return (type == typeof(string));
}
public override object ConvertTo(
ITypeDescriptorContext ctx, CultureInfo ci,
object value, Type type)
{
ValidateType(value, typeof(TimeSpan));
long data = (long)(((TimeSpan)value).TotalMinutes);
return data.ToString(CultureInfo.InvariantCulture);
}
public override object ConvertFrom(
ITypeDescriptorContext ctx, CultureInfo ci, object data)
{
long min = long.Parse((string)data,
CultureInfo.InvariantCulture);
return TimeSpan.FromMinutes((double)min);
}
}
class UsingConfigutationConverterBase
{
// Create a custom section.
static void CreateSection()
{
try
{
CustomSection customSection;
// Get the current configuration file.
System.Configuration.Configuration config =
ConfigurationManager.OpenExeConfiguration(
ConfigurationUserLevel.None);
// Create the section entry
// in the <configSections> and the
// related target section in <configuration>.
if (config.Sections["CustomSection"] == null)
{
customSection = new CustomSection();
config.Sections.Add("CustomSection", customSection);
customSection.SectionInformation.ForceSave = true;
config.Save(ConfigurationSaveMode.Full);
}
}
catch (ConfigurationErrorsException err)
{
Console.WriteLine(err.ToString());
}
}
// Change custom section and write it to disk.
static void SerializeCustomSection()
{
try
{
System.Configuration.Configuration config =
ConfigurationManager.OpenExeConfiguration(
ConfigurationUserLevel.None);
CustomSection customSection =
config.Sections.Get("CustomSection")
as CustomSection;
TimeSpan ts =
new TimeSpan(1, 30, 30);
customSection.MaxIdleTime = ts;
config.Save();
string maxIdleTime =
customSection.MaxIdleTime.ToString();
Console.WriteLine("New max idle time: {0}",
maxIdleTime);
}
catch (Exception e)
{
Console.WriteLine(e.ToString());
}
}
// Read custom section from disk.
static void DeserializeCustomSection()
{
try
{
System.Configuration.Configuration config =
ConfigurationManager.OpenExeConfiguration(
ConfigurationUserLevel.None);
CustomSection customSection =
config.Sections.Get("CustomSection")
as CustomSection;
TimeSpan maxIdleTime =
customSection.MaxIdleTime;
Console.WriteLine("Max idle time: {0}",
maxIdleTime.ToString());
}
catch (Exception e)
{
Console.WriteLine(e.ToString());
}
}
static void Main(string[] args)
{
CreateSection();
SerializeCustomSection();
DeserializeCustomSection();
}
}
}
Imports System.Collections.Generic
Imports System.Text
Imports System.Configuration
Imports System.Globalization
Imports System.ComponentModel
' Define a custom section.
NotInheritable Public Class CustomSection
Inherits ConfigurationSection
Public Sub New()
End Sub
<ConfigurationProperty("fileName", _
DefaultValue:="default.txt", _
IsRequired:=True, IsKey:=False), _
StringValidator(InvalidCharacters:=" ~!@#$%^&*()[]{}/;'""|\", _
MinLength:=1, MaxLength:=60)> _
Public Property FileName() As String
Get
Return CStr(Me("fileName"))
End Get
Set(ByVal value As String)
Me("fileName") = value
End Set
End Property
<ConfigurationProperty("maxIdleTime"), _
TypeConverter(GetType(TsMinutesConverter))> _
Public Property MaxIdleTime() As TimeSpan
Get
Return CType(Me("maxIdleTime"), TimeSpan)
End Get
Set(ByVal value As TimeSpan)
Me("maxIdleTime") = Value
End Set
End Property
End Class
NotInheritable Public Class TsMinutesConverter
Inherits ConfigurationConverterBase
Friend Function ValidateType(value As Object, expected As Type) As Boolean
Dim result As Boolean
If Not (value Is Nothing) _
AndAlso (value.GetType().Equals(expected) <> True) Then
result = False
Else
result = True
End If
Return result
End Function 'ValidateType
Public Overrides Function CanConvertTo( _
ByVal ctx As ITypeDescriptorContext, _
ByVal type As Type) As Boolean
Return type.Equals(GetType(String))
End Function 'CanConvertTo
Public Overrides Function CanConvertFrom( _
ByVal ctx As ITypeDescriptorContext, _
ByVal type As Type) As Boolean
Return type.Equals(GetType(String))
End Function 'CanConvertFrom
Public Overrides Function ConvertTo( _
ByVal ctx As ITypeDescriptorContext, ByVal ci As CultureInfo, _
ByVal value As Object, ByVal type As Type) As Object
ValidateType(value, GetType(TimeSpan))
Dim data As Long = _
Fix(CType(value, TimeSpan).TotalMinutes)
Return data.ToString(CultureInfo.InvariantCulture)
End Function 'ConvertTo
Public Overrides Function ConvertFrom( _
ByVal ctx As ITypeDescriptorContext, ByVal ci As CultureInfo, _
ByVal data As Object) As Object
Dim min As Long = _
Long.Parse(CStr(data), _
CultureInfo.InvariantCulture)
Return TimeSpan.FromMinutes( _
System.Convert.ToDouble(min))
End Function 'ConvertFrom
End Class
Class UsingConfigutationConverterBase
' Create a custom section.
Shared Sub CreateSection()
Try
Dim customSection As CustomSection
' Get the current configuration file.
Dim config _
As System.Configuration.Configuration = _
ConfigurationManager.OpenExeConfiguration( _
ConfigurationUserLevel.None)
' Create the section entry
' in the <configSections> and the
' related target section in <configuration>.
If config.Sections("CustomSection") Is Nothing Then
customSection = New CustomSection()
config.Sections.Add("CustomSection", customSection)
customSection.SectionInformation.ForceSave = True
config.Save(ConfigurationSaveMode.Full)
End If
Catch err As ConfigurationErrorsException
Console.WriteLine(err.ToString())
End Try
End Sub
' Change custom section and write it to disk.
Shared Sub SerializeCustomSection()
Try
Dim config _
As System.Configuration.Configuration = _
ConfigurationManager.OpenExeConfiguration( _
ConfigurationUserLevel.None)
Dim customSection _
As CustomSection = _
config.Sections.Get("CustomSection")
Dim ts As New TimeSpan(1, 30, 30)
customSection.MaxIdleTime = ts
config.Save()
Dim maxIdleTime As String = _
customSection.MaxIdleTime.ToString()
Console.WriteLine( _
"New max idle time: {0}", maxIdleTime)
Catch e As Exception
Console.WriteLine(e.ToString())
End Try
End Sub
' Read custom section from disk.
Shared Sub DeserializeCustomSection()
Try
Dim config _
As System.Configuration.Configuration = _
ConfigurationManager.OpenExeConfiguration( _
ConfigurationUserLevel.None)
Dim customSection _
As CustomSection = _
config.Sections.Get("CustomSection")
Dim maxIdleTime As TimeSpan = _
customSection.MaxIdleTime
Console.WriteLine( _
"Max idle time: {0}", maxIdleTime.ToString())
Catch e As Exception
Console.WriteLine(e.ToString())
End Try
End Sub
Public Overloads Shared Sub Main(ByVal args() As String)
CreateSection()
SerializeCustomSection()
DeserializeCustomSection()
End Sub
End Class
Di seguito è riportato un estratto di configurazione usato dall'esempio precedente.
<?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" />
</configuration>
Commenti
È ConfigurationConverterBase la classe di base per i tipi di configurazione del convertitore. Questi sono tipi che convertono stringhe, presenti nel file di configurazione, in e dalle proprietà fortemente tipizzata correlate.
Costruttori
ConfigurationConverterBase() |
Inizializza una nuova istanza della classe ConfigurationConverterBase. |
Metodi
CanConvertFrom(ITypeDescriptorContext, Type) |
Determina se la conversione è consentita. |
CanConvertFrom(Type) |
Indica se questo convertitore può convertire un oggetto del tipo specificato nel tipo di questo convertitore. (Ereditato da TypeConverter) |
CanConvertTo(ITypeDescriptorContext, Type) |
Determina se la conversione è consentita. |
CanConvertTo(Type) |
Indica se questo convertitore può convertire l'oggetto nel tipo specificato. (Ereditato da TypeConverter) |
ConvertFrom(ITypeDescriptorContext, CultureInfo, Object) |
Converte l'oggetto specificato nel tipo del convertitore mediante il contesto e le informazioni sulle impostazioni cultura specificati. (Ereditato da TypeConverter) |
ConvertFrom(Object) |
Converte il valore specificato nel tipo di questo convertitore. (Ereditato da TypeConverter) |
ConvertFromInvariantString(ITypeDescriptorContext, String) |
Converte la stringa specificata nel tipo di questo convertitore, utilizzando le impostazioni cultura inglesi e il contesto specificato. (Ereditato da TypeConverter) |
ConvertFromInvariantString(String) |
Converte la stringa specificata nel tipo di questo convertitore, utilizzando le impostazioni cultura invarianti. (Ereditato da TypeConverter) |
ConvertFromString(ITypeDescriptorContext, CultureInfo, String) |
Converte il testo specificato in un oggetto, utilizzando il contesto specificato e le informazioni sulle impostazioni cultura. (Ereditato da TypeConverter) |
ConvertFromString(ITypeDescriptorContext, String) |
Converte il testo specificato in un oggetto, utilizzando il contesto specificato. (Ereditato da TypeConverter) |
ConvertFromString(String) |
Converte il testo specificato in un oggetto. (Ereditato da TypeConverter) |
ConvertTo(ITypeDescriptorContext, CultureInfo, Object, Type) |
Converte l'oggetto valore specificato nel tipo del convertitore mediante il contesto e le informazioni sulle impostazioni cultura specificati. (Ereditato da TypeConverter) |
ConvertTo(Object, Type) |
Converte l'oggetto valore specificato nel tipo specificato, utilizzando gli argomenti. (Ereditato da TypeConverter) |
ConvertToInvariantString(ITypeDescriptorContext, Object) |
Converte il valore specificato in una rappresentazione in formato stringa indipendente dalle impostazioni cultura, utilizzando il contesto specificato. (Ereditato da TypeConverter) |
ConvertToInvariantString(Object) |
Converte il valore specificato in una rappresentazione in formato stringa indipendente dalle impostazioni cultura. (Ereditato da TypeConverter) |
ConvertToString(ITypeDescriptorContext, CultureInfo, Object) |
Converte il valore specificato in una rappresentazione in formato stringa, utilizzando il contesto specificato e le informazioni sulle impostazioni cultura. (Ereditato da TypeConverter) |
ConvertToString(ITypeDescriptorContext, Object) |
Converte il valore specificato in una rappresentazione in formato stringa, utilizzando il contesto specificato. (Ereditato da TypeConverter) |
ConvertToString(Object) |
Converte il valore specificato in una rappresentazione in formato stringa. (Ereditato da TypeConverter) |
CreateInstance(IDictionary) |
Ricrea un oggetto Object in base a un set di valori di proprietà dell'oggetto. (Ereditato da TypeConverter) |
CreateInstance(ITypeDescriptorContext, IDictionary) |
Crea un'istanza del tipo a cui questo oggetto TypeConverter è associato, usando il contesto specificato, dato un set di valori di proprietà per l'oggetto. (Ereditato da TypeConverter) |
Equals(Object) |
Determina se l'oggetto specificato è uguale all'oggetto corrente. (Ereditato da Object) |
GetConvertFromException(Object) |
Restituisce un'eccezione da generare quando non è possibile eseguire una conversione. (Ereditato da TypeConverter) |
GetConvertToException(Object, Type) |
Restituisce un'eccezione da generare quando non è possibile eseguire una conversione. (Ereditato da TypeConverter) |
GetCreateInstanceSupported() |
Restituisce se la modifica di un valore su questo oggetto richiede una chiamata al metodo CreateInstance(IDictionary) per creare un nuovo valore. (Ereditato da TypeConverter) |
GetCreateInstanceSupported(ITypeDescriptorContext) |
Restituisce un valore che indica se la modifica di un valore di questo oggetto richiede una chiamata a CreateInstance(IDictionary) per creare un nuovo valore, usando il contesto specificato. (Ereditato da TypeConverter) |
GetHashCode() |
Funge da funzione hash predefinita. (Ereditato da Object) |
GetProperties(ITypeDescriptorContext, Object) |
Restituisce un insieme di proprietà per il tipo di matrice specificato dal parametro del valore utilizzando il contesto specificato. (Ereditato da TypeConverter) |
GetProperties(ITypeDescriptorContext, Object, Attribute[]) |
Restituisce una raccolta di proprietà per il tipo di matrice specificato dal parametro del valore usando il contesto e gli attributi specificati. (Ereditato da TypeConverter) |
GetProperties(Object) |
Restituisce una raccolta di proprietà per il tipo di matrice specificato dal parametro value. (Ereditato da TypeConverter) |
GetPropertiesSupported() |
Indica se questo oggetto supporta le proprietà. (Ereditato da TypeConverter) |
GetPropertiesSupported(ITypeDescriptorContext) |
Indica se questo oggetto supporta proprietà, usando il contesto specificato. (Ereditato da TypeConverter) |
GetStandardValues() |
Restituisce un insieme di valori standard dal contesto predefinito del tipo di dati per il quale è stato progettato questo convertitore di tipi. (Ereditato da TypeConverter) |
GetStandardValues(ITypeDescriptorContext) |
Restituisce una raccolta di valori standard per il tipo di dati per cui è progettato questo convertitore di tipo, quando viene fornito un contesto di formato. (Ereditato da TypeConverter) |
GetStandardValuesExclusive() |
Indica se la raccolta di valori standard restituiti dal metodo GetStandardValues() rappresenta un elenco esclusivo. (Ereditato da TypeConverter) |
GetStandardValuesExclusive(ITypeDescriptorContext) |
Indica se la raccolta di valori standard restituiti da GetStandardValues() rappresenta un elenco esclusivo di valori possibili utilizzando il contesto specificato. (Ereditato da TypeConverter) |
GetStandardValuesSupported() |
Indica se questo oggetto supporta un set standard di valori selezionabili da un elenco. (Ereditato da TypeConverter) |
GetStandardValuesSupported(ITypeDescriptorContext) |
Indica se questo oggetto supporta un set standard di valori selezionabili da un elenco utilizzando il contesto specificato. (Ereditato da TypeConverter) |
GetType() |
Ottiene l'oggetto Type dell'istanza corrente. (Ereditato da Object) |
IsValid(ITypeDescriptorContext, Object) |
Indica se l'oggetto valore specificato è valido per il tipo e per il contesto specificato. (Ereditato da TypeConverter) |
IsValid(Object) |
Indica se l'oggetto valore specificato è valido per questo tipo. (Ereditato da TypeConverter) |
MemberwiseClone() |
Crea una copia superficiale dell'oggetto Object corrente. (Ereditato da Object) |
SortProperties(PropertyDescriptorCollection, String[]) |
Ordina un insieme di proprietà. (Ereditato da TypeConverter) |
ToString() |
Restituisce una stringa che rappresenta l'oggetto corrente. (Ereditato da Object) |