TypeConverter 클래스
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
표준 값과 하위 속성에 액세스하기 위한 그리고 값의 형식을 다른 형식으로 변환하기 위한 통합된 방법을 제공합니다.
public ref class TypeConverter
public class TypeConverter
[System.Runtime.InteropServices.ComVisible(true)]
public class TypeConverter
type TypeConverter = class
[<System.Runtime.InteropServices.ComVisible(true)>]
type TypeConverter = class
Public Class TypeConverter
- 상속
-
TypeConverter
- 파생
- 특성
예제
다음 코드 예제에서는 형식 변환기의 인스턴스를 만들고 클래스에 바인딩하는 방법을 보여줍니다. 변환기 를 MyClassConverter
구현하는 클래스는 클래스에서 TypeConverter 상속되어야 합니다.
public:
[TypeConverter(Sample::MyClassConverter::typeid)]
ref class MyClass
{
// Insert code here.
};
[TypeConverter(typeof(MyClassConverter))]
public class MyClass {
// Insert code here.
}
<TypeConverter(GetType(MyClassConverter))> _
Public Class Class1
' Insert code here.
End Class
열거형이 있는 속성이 있는 경우 속성을 설정하기 전에 열거형 값이 유효한지 확인합니다. 다음 코드 예제에서는 라는 MyPropertyEnum
열거형이 선언되어야 합니다.
public:
property MyPropertyEnum MyProperty
{
void set( MyPropertyEnum value )
{
// Checks to see if the value passed is valid.
if ( !TypeDescriptor::GetConverter( MyPropertyEnum::typeid )->IsValid( value ) )
{
throw gcnew ArgumentException;
}
// The value is valid. Insert code to set the property.
}
}
public MyPropertyEnum MyProperty {
set {
// Checks to see if the value passed is valid.
if (!TypeDescriptor.GetConverter(typeof(MyPropertyEnum)).IsValid(value)) {
throw new ArgumentException();
}
// The value is valid. Insert code to set the property.
}
}
Public WriteOnly Property MyProperty() As MyPropertyEnum
Set
' Checks to see if the value passed is valid.
If Not TypeDescriptor.GetConverter(GetType(MyPropertyEnum)).IsValid(value) Then
Throw New ArgumentException()
End If
' The value is valid. Insert code to set the property.
End Set
End Property
또 다른 일반적인 형식 변환기 사용은 개체를 문자열로 변환하는 것입니다. 다음 코드 예제에서는 변수c
에 저장된 의 Color 이름을 출력합니다.
Color c = Color::Red;
Console::WriteLine( TypeDescriptor::GetConverter( c )->ConvertToString( c ) );
Color c = Color.Red;
Console.WriteLine(TypeDescriptor.GetConverter(typeof(Color)).ConvertToString(c));
Dim c As Color = Color.Red
Console.WriteLine(TypeDescriptor.GetConverter(c).ConvertToString(c))
다음 코드 예제와 같이 형식 변환기를 사용하여 이름에서 값을 변환할 수도 있습니다.
Color c = (Color)(TypeDescriptor::GetConverter( Color::typeid )->ConvertFromString( "Red" ));
Color c = (Color)TypeDescriptor.GetConverter(typeof(Color)).ConvertFromString("Red");
Dim c As Color = CType(TypeDescriptor.GetConverter(GetType(Color)).ConvertFromString("Red"), Color)
다음 코드 예제에서는 형식 변환기를 사용하여 개체가 지원하는 표준 값 집합을 인쇄할 수 있습니다.
for each ( Color c in TypeDescriptor::GetConverter( Color::typeid )->GetStandardValues() )
{
Console::WriteLine( TypeDescriptor::GetConverter( c )->ConvertToString( c ) );
}
foreach(Color c in TypeDescriptor.GetConverter(typeof(Color)).GetStandardValues()) {
Console.WriteLine(TypeDescriptor.GetConverter(c).ConvertToString(c));
}
Dim c As Color
For Each c In TypeDescriptor.GetConverter(GetType(Color)).GetStandardValues()
Console.WriteLine(TypeDescriptor.GetConverter(c).ConvertToString(c))
Next c
설명
변환기의 가장 일반적인 형식은 텍스트 표현 간에 변환하는 변환기입니다. 클래스의 형식 변환기는 TypeConverterAttribute의 클래스에 바인딩됩니다. 이 특성을 재정의하지 않는 한 이 클래스에서 상속되는 모든 클래스는 기본 클래스와 동일한 형식 변환기를 사용합니다.
참고
일반적인 형식 시스템 용도로 형식 변환기는 직접 액세스하지 마세요. 대신 를 사용하여 TypeDescriptor적절한 변환기 에 액세스합니다. 자세한 내용은 제공된 코드 예제를 참조하세요.
그러나 XAML을 사용하는 경우 XAML 프로세서는 TypeConverterAttribute 를 통과하는 TypeDescriptor대신 를 직접 검색합니다. 코드에서 인스턴스를 TypeDescriptor 원하거나 WPF 리소스에서 공유 인스턴스를 만드는 경우 참조 TypeDescriptor 또는 기타 리플렉션 및 형식 시스템 지원 없이 직접 생성할 수 있습니다.
에서 TypeConverter 파생된 클래스는 XAML 프로세서가 특성 또는 초기화 텍스트 값을 태그(본질적으로 문자열)에서 변환하고 런타임 표현을 위한 개체를 생성하는 방법의 일부로 참조되는 경우가 많습니다. XAML에 대한 형식 변환 동작을 지원하려는 사용자 지정 형식 작성자는 일반적으로 문자열에서 고유한 ConvertFrom
동작을 지원하는 클래스를 구현 TypeConverter 합니다. 이 동작은 XAML 특성 값으로 제공된 문자열에서 형식 변환을 사용하도록 설정하고 구문 분석된 개체 그래프에서 개체를 생성할 수 있도록 문자열에서 개체를 만드는 데 필요한 지원을 XAML 프로세서에 제공합니다. 사용자 지정 형식의 사용자 지정 형식 또는 멤버는 사용자 지정 구현을 참조하는 TypeConverterAttribute 특성과 함께 정의에 TypeConverter 를 적용하여 표시됩니다. 자세한 내용은 XAML용 형식 변환기 개요를 참조하세요.
상속자 참고
에서 TypeConverter 상속하여 고유한 변환 요구 사항을 구현합니다. 이 클래스에서 상속하는 경우 다음 메서드를 재정의할 수 있습니다.
사용자 지정 형식 변환을 지원하려면 , , CanConvertTo(ITypeDescriptorContext, Type)ConvertFrom(ITypeDescriptorContext, CultureInfo, Object)및 ConvertTo(ITypeDescriptorContext, CultureInfo, Object, Type) 메서드를 재정의CanConvertFrom(ITypeDescriptorContext, Type)합니다.
개체를 다시 만들어 값을 변경해야 하는 형식을 변환하려면 및 GetCreateInstanceSupported(ITypeDescriptorContext) 메서드를 재정의 CreateInstance(ITypeDescriptorContext, IDictionary) 합니다.
속성을 지원하는 형식을 변환하려면 및 GetPropertiesSupported(ITypeDescriptorContext) 메서드를 재정의 GetProperties(ITypeDescriptorContext, Object, Attribute[]) 합니다. 변환하는 클래스에 속성이 없는 경우 속성을 구현해야 하는 경우 클래스를 TypeConverter.SimplePropertyDescriptor 속성 설명자를 구현하기 위한 기반으로 사용할 수 있습니다. 에서 TypeConverter.SimplePropertyDescriptor상속하는 경우 및 SetValue(Object, Object) 메서드를 재정의 GetValue(Object) 해야 합니다.
표준 값을 지원하는 형식을 변환하려면 , GetStandardValuesExclusive(ITypeDescriptorContext)및 GetStandardValuesSupported(ITypeDescriptorContext)IsValid(ITypeDescriptorContext, Object) 메서드를 재정의GetStandardValues(ITypeDescriptorContext)합니다.
참고: 파생 형식은 또는 private
로 internal
표시될 수 있지만 클래스를 사용하여 형식의 인스턴스를 TypeDescriptor 만들 수 있습니다. 호출자를 신뢰할 수 있다고 가정하여 안전하지 않은 코드를 작성하지 마세요. 대신 호출자가 부분 신뢰에서 형식의 인스턴스를 만들 수 있다고 가정합니다.
일반(XAML이 아닌) 용도의 형식 변환자에 대한 자세한 내용은 방법: 형식 변환기 구현 또는 일반화된 형식 변환을 참조하세요.
생성자
TypeConverter() |
TypeConverter 클래스의 새 인스턴스를 초기화합니다. |
메서드
CanConvertFrom(ITypeDescriptorContext, Type) |
지정된 컨텍스트를 사용하여 이 변환기가 지정된 형식의 개체를 이 변환기의 형식으로 변환할 수 있는지 여부를 반환합니다. |
CanConvertFrom(Type) |
이 변환기가 지정된 형식의 개체를 이 변환기의 형식으로 변환할 수 있는지 여부를 반환합니다. |
CanConvertTo(ITypeDescriptorContext, Type) |
지정된 컨텍스트를 사용하여 이 변환기에서 개체를 지정된 형식으로 변환할 수 있는지 여부를 반환합니다. |
CanConvertTo(Type) |
이 변환기가 개체를 지정된 형식으로 변환할 수 있는지 여부를 반환합니다. |
ConvertFrom(ITypeDescriptorContext, CultureInfo, Object) |
지정한 컨텍스트와 culture 정보를 사용하여 지정된 개체를 이 변환기의 유형으로 변환합니다. |
ConvertFrom(Object) |
지정된 값을 이 변환기의 형식으로 변환합니다. |
ConvertFromInvariantString(ITypeDescriptorContext, String) |
고정 문화권 및 지정된 컨텍스트를 사용하여 지정된 문자열을 이 변환기의 형식으로 변환합니다. |
ConvertFromInvariantString(String) |
고정 문화권을 사용하여, 지정된 문자열을 이 변환기의 형식으로 변환합니다. |
ConvertFromString(ITypeDescriptorContext, CultureInfo, String) |
지정된 컨텍스트 및 문화권 정보를 사용하여, 지정된 텍스트를 개체로 변환합니다. |
ConvertFromString(ITypeDescriptorContext, String) |
지정된 컨텍스트를 사용하여, 지정된 텍스트를 개체로 변환합니다. |
ConvertFromString(String) |
지정된 텍스트를 개체로 변환합니다. |
ConvertTo(ITypeDescriptorContext, CultureInfo, Object, Type) |
지정한 컨텍스트와 culture 정보를 사용하여 지정된 값 개체를 지정된 유형으로 변환합니다. |
ConvertTo(Object, Type) |
인수를 사용하여, 지정된 값 개체를 지정된 형식으로 변환합니다. |
ConvertToInvariantString(ITypeDescriptorContext, Object) |
지정된 context를 사용하여, 지정된 값을 고정 문화권의 문자열 표현으로 변환합니다. |
ConvertToInvariantString(Object) |
지정된 값을 고정 문화권의 문자열 표현으로 변환합니다. |
ConvertToString(ITypeDescriptorContext, CultureInfo, Object) |
지정된 컨텍스트 및 문화권 정보를 사용하여, 지정된 값을 문자열 표현으로 변환합니다. |
ConvertToString(ITypeDescriptorContext, Object) |
지정된 컨텍스트를 사용하여, 지정된 값을 문자열 표현으로 변환합니다. |
ConvertToString(Object) |
지정된 값을 문자열 표현으로 변환합니다. |
CreateInstance(IDictionary) |
개체의 속성 값 집합이 지정된 Object를 다시 만듭니다. |
CreateInstance(ITypeDescriptorContext, IDictionary) |
지정된 컨텍스트를 사용하여 이 TypeConverter가 연결된 형식의 인스턴스를 만들어 개체의 속성 값 집합을 제공합니다. |
Equals(Object) |
지정된 개체가 현재 개체와 같은지 확인합니다. (다음에서 상속됨 Object) |
GetConvertFromException(Object) |
변환을 수행할 수 없을 때 발생하는 예외를 반환합니다. |
GetConvertToException(Object, Type) |
변환을 수행할 수 없을 때 발생하는 예외를 반환합니다. |
GetCreateInstanceSupported() |
이 개체의 값을 변경할 때 CreateInstance(IDictionary) 메서드를 호출하여 새 값을 만들어야 하는지 여부를 반환합니다. |
GetCreateInstanceSupported(ITypeDescriptorContext) |
이 개체의 값을 변경하려는 경우 CreateInstance(IDictionary) 호출을 통해 지정된 컨텍스트를 사용하여 새 값을 만들어야 하는지 여부를 반환합니다. |
GetHashCode() |
기본 해시 함수로 작동합니다. (다음에서 상속됨 Object) |
GetProperties(ITypeDescriptorContext, Object) |
지정된 컨텍스트를 사용하여, 값 매개 변수로 지정한 배열 형식에 대한 속성 컬렉션을 반환합니다. |
GetProperties(ITypeDescriptorContext, Object, Attribute[]) |
지정된 컨텍스트 및 특성을 사용하여 값 매개 변수로 지정된 배열 형식에 대한 속성 컬렉션을 반환합니다. |
GetProperties(Object) |
값 매개 변수로 지정된 배열 형식에 대한 속성 컬렉션을 반환합니다. |
GetPropertiesSupported() |
이 개체가 속성을 지원하는지 여부를 반환합니다. |
GetPropertiesSupported(ITypeDescriptorContext) |
이 개체가 지정된 컨텍스트를 사용하여 속성을 지원하는지 여부를 반환합니다. |
GetStandardValues() |
이 형식 변환기를 사용하도록 디자인된 데이터 형식의 기본 컨텍스트에서 표준 값 컬렉션을 반환합니다. |
GetStandardValues(ITypeDescriptorContext) |
형식 컨텍스트를 제공할 경우 이 형식 변환기가 사용되는 데이터 형식에 대한 표준 값의 컬렉션을 반환합니다. |
GetStandardValuesExclusive() |
GetStandardValues()에서 반환된 표준 값 컬렉션이 단독 목록인지 여부를 반환합니다. |
GetStandardValuesExclusive(ITypeDescriptorContext) |
지정된 컨텍스트를 사용하여, GetStandardValues()에서 반환된 표준 값 컬렉션이 가능한 값에 대한 단독 목록인지 여부를 반환합니다. |
GetStandardValuesSupported() |
이 개체가 목록에서 선택할 수 있는 표준 값 집합을 지원하는지 여부를 반환합니다. |
GetStandardValuesSupported(ITypeDescriptorContext) |
지정된 컨텍스트를 사용하여, 이 개체가 목록에서 선택할 수 있는 표준 값 집합을 지원하는지 여부를 반환합니다. |
GetType() |
현재 인스턴스의 Type을 가져옵니다. (다음에서 상속됨 Object) |
IsValid(ITypeDescriptorContext, Object) |
지정된 값 개체가 이 형식 및 지정된 컨텍스트에 대해 유효한지 여부를 반환합니다. |
IsValid(Object) |
지정된 값 개체를 이 형식에 사용할 수 있는지 여부를 반환합니다. |
MemberwiseClone() |
현재 Object의 단순 복사본을 만듭니다. (다음에서 상속됨 Object) |
SortProperties(PropertyDescriptorCollection, String[]) |
속성 컬렉션을 정렬합니다. |
ToString() |
현재 개체를 나타내는 문자열을 반환합니다. (다음에서 상속됨 Object) |
적용 대상
추가 정보
.NET