ConfigurationConverterBase Klass
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Basklassen för konfigurationskonverterarens typer.
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
- Arv
- Härledda
Exempel
Följande kodexempel visar hur du härleder från ConfigurationConverterBase klassen för att skapa en anpassad TimeSpan konverterartyp. Exemplen visar också hur du använder den här typen i ett anpassat avsnitt.
I följande kodexempel visas hur du skapar en anpassad TimeSpan konverterartyp från ConfigurationConverterBase klassen.
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
I följande kodexempel visas hur du definierar ett anpassat avsnitt som använder den tidigare anpassade TimeSpan konverteraren.
// 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
Följande kodexempel visar hur du skapar och ändrar en konfigurationsfil med hjälp av föregående anpassade avsnitt.
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
Följande är ett konfigurationsutdrag som används i föregående exempel.
<?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>
Kommentarer
ConfigurationConverterBase är basklassen för konverterarens konfigurationstyper. Det här är typer som konverterar strängar som finns i konfigurationsfilen till och från de relaterade starkt inskrivna egenskaperna.
Konstruktorer
| Name | Description |
|---|---|
| ConfigurationConverterBase() |
Initierar en ny instans av ConfigurationConverterBase klassen. |
Metoder
| Name | Description |
|---|---|
| CanConvertFrom(ITypeDescriptorContext, Type) |
Avgör om konverteringen är tillåten. |
| CanConvertFrom(Type) |
Returnerar om konverteraren kan konvertera ett objekt av den angivna typen till konverterarens typ. (Ärvd från TypeConverter) |
| CanConvertTo(ITypeDescriptorContext, Type) |
Avgör om konverteringen är tillåten. |
| CanConvertTo(Type) |
Returnerar om konverteraren kan konvertera objektet till den angivna typen. (Ärvd från TypeConverter) |
| ConvertFrom(ITypeDescriptorContext, CultureInfo, Object) |
Konverterar det angivna objektet till den här konverterarens typ med hjälp av den angivna kontext- och kulturinformationen. (Ärvd från TypeConverter) |
| ConvertFrom(Object) |
Konverterar det angivna värdet till konverterarens typ. (Ärvd från TypeConverter) |
| ConvertFromInvariantString(ITypeDescriptorContext, String) |
Konverterar den angivna strängen till typen av konverterare med hjälp av den invarianta kulturen och den angivna kontexten. (Ärvd från TypeConverter) |
| ConvertFromInvariantString(String) |
Konverterar den angivna strängen till den här konverterarens typ med hjälp av den invarianta kulturen. (Ärvd från TypeConverter) |
| ConvertFromString(ITypeDescriptorContext, CultureInfo, String) |
Konverterar den angivna texten till ett objekt med hjälp av den angivna kontext- och kulturinformationen. (Ärvd från TypeConverter) |
| ConvertFromString(ITypeDescriptorContext, String) |
Konverterar den angivna texten till ett objekt med hjälp av den angivna kontexten. (Ärvd från TypeConverter) |
| ConvertFromString(String) |
Konverterar den angivna texten till ett objekt. (Ärvd från TypeConverter) |
| ConvertTo(ITypeDescriptorContext, CultureInfo, Object, Type) |
Konverterar det angivna värdeobjektet till den angivna typen med hjälp av den angivna kontext- och kulturinformationen. (Ärvd från TypeConverter) |
| ConvertTo(Object, Type) |
Konverterar det angivna värdeobjektet till den angivna typen med hjälp av argumenten. (Ärvd från TypeConverter) |
| ConvertToInvariantString(ITypeDescriptorContext, Object) |
Konverterar det angivna värdet till en kultur-invariant strängrepresentation med den angivna kontexten. (Ärvd från TypeConverter) |
| ConvertToInvariantString(Object) |
Konverterar det angivna värdet till en kultur-invariant strängrepresentation. (Ärvd från TypeConverter) |
| ConvertToString(ITypeDescriptorContext, CultureInfo, Object) |
Konverterar det angivna värdet till en strängrepresentation med hjälp av den angivna kontext- och kulturinformationen. (Ärvd från TypeConverter) |
| ConvertToString(ITypeDescriptorContext, Object) |
Konverterar det angivna värdet till en strängrepresentation med hjälp av den angivna kontexten. (Ärvd från TypeConverter) |
| ConvertToString(Object) |
Konverterar det angivna värdet till en strängrepresentation. (Ärvd från TypeConverter) |
| CreateInstance(IDictionary) |
Återskapar en Object angiven uppsättning egenskapsvärden för objektet. (Ärvd från TypeConverter) |
| CreateInstance(ITypeDescriptorContext, IDictionary) |
Skapar en instans av den typ som detta TypeConverter är associerat med, med hjälp av den angivna kontexten, givet en uppsättning egenskapsvärden för objektet. (Ärvd från TypeConverter) |
| Equals(Object) |
Avgör om det angivna objektet är lika med det aktuella objektet. (Ärvd från Object) |
| GetConvertFromException(Object) |
Returnerar ett undantag som ska utlösas när en konvertering inte kan utföras. (Ärvd från TypeConverter) |
| GetConvertToException(Object, Type) |
Returnerar ett undantag som ska utlösas när en konvertering inte kan utföras. (Ärvd från TypeConverter) |
| GetCreateInstanceSupported() |
Returnerar om det krävs ett anrop till metoden för att skapa ett nytt värde för att CreateInstance(IDictionary) ändra ett värde för det här objektet. (Ärvd från TypeConverter) |
| GetCreateInstanceSupported(ITypeDescriptorContext) |
Returnerar om ett värde för det här objektet måste anropas för att CreateInstance(IDictionary) skapa ett nytt värde med hjälp av den angivna kontexten. (Ärvd från TypeConverter) |
| GetHashCode() |
Fungerar som standard-hash-funktion. (Ärvd från Object) |
| GetProperties(ITypeDescriptorContext, Object, Attribute[]) |
Returnerar en samling egenskaper för den typ av matris som anges av värdeparametern med hjälp av den angivna kontexten och attributen. (Ärvd från TypeConverter) |
| GetProperties(ITypeDescriptorContext, Object) |
Returnerar en samling egenskaper för den typ av matris som anges av värdeparametern med den angivna kontexten. (Ärvd från TypeConverter) |
| GetProperties(Object) |
Returnerar en samling egenskaper för den typ av matris som anges av värdeparametern. (Ärvd från TypeConverter) |
| GetPropertiesSupported() |
Returnerar om det här objektet stöder egenskaper. (Ärvd från TypeConverter) |
| GetPropertiesSupported(ITypeDescriptorContext) |
Returnerar om det här objektet stöder egenskaper med hjälp av den angivna kontexten. (Ärvd från TypeConverter) |
| GetStandardValues() |
Returnerar en samling standardvärden från standardkontexten för den datatyp som den här typkonverteraren är utformad för. (Ärvd från TypeConverter) |
| GetStandardValues(ITypeDescriptorContext) |
Returnerar en samling standardvärden för datatypen som den här typkonverteraren är avsedd för när den tillhandahålls med en formatkontext. (Ärvd från TypeConverter) |
| GetStandardValuesExclusive() |
Returnerar om samlingen med standardvärden som returneras från GetStandardValues() är en exklusiv lista. (Ärvd från TypeConverter) |
| GetStandardValuesExclusive(ITypeDescriptorContext) |
Returnerar om samlingen med standardvärden som returneras från GetStandardValues() är en exklusiv lista över möjliga värden med hjälp av den angivna kontexten. (Ärvd från TypeConverter) |
| GetStandardValuesSupported() |
Returnerar om det här objektet stöder en standarduppsättning med värden som kan väljas från en lista. (Ärvd från TypeConverter) |
| GetStandardValuesSupported(ITypeDescriptorContext) |
Returnerar om det här objektet stöder en standarduppsättning med värden som kan väljas från en lista med hjälp av den angivna kontexten. (Ärvd från TypeConverter) |
| GetType() |
Hämtar den aktuella instansen Type . (Ärvd från Object) |
| IsValid(ITypeDescriptorContext, Object) |
Returnerar om det angivna värdeobjektet är giltigt för den här typen och för den angivna kontexten. (Ärvd från TypeConverter) |
| IsValid(Object) |
Returnerar om det angivna värdeobjektet är giltigt för den här typen. (Ärvd från TypeConverter) |
| MemberwiseClone() |
Skapar en ytlig kopia av den aktuella Object. (Ärvd från Object) |
| SortProperties(PropertyDescriptorCollection, String[]) |
Sorterar en samling egenskaper. (Ärvd från TypeConverter) |
| ToString() |
Returnerar en sträng som representerar det aktuella objektet. (Ärvd från Object) |