Hallo,
ich habe ein Problem mit dem TypeConverter meiner Klasse in VB.NET. Ich bin dabei einen Datentyp namens FString zu entwickeln.
Damit eine direkte Umwandlung von und in den Datentyp String möglich ist, wollte ich also einen TypeConverter für die Klasse bereitstellen:
Die Umwandlung ist folgendermaßen natürlich problemlos möglich:
Aber ich würde auch gerne die direkte Schreibweise nutzbar machen - also
Weiß jemand eine Lösung? Wahrscheinlich stelle ich mich einfach nur blöd an.
LG
ich habe ein Problem mit dem TypeConverter meiner Klasse in VB.NET. Ich bin dabei einen Datentyp namens FString zu entwickeln.
Damit eine direkte Umwandlung von und in den Datentyp String möglich ist, wollte ich also einen TypeConverter für die Klasse bereitstellen:
VB.NET-Quellcode
- Public Class FStringConverter
- Inherits System.ComponentModel.TypeConverter
- Public Overloads Overrides Function CanConvertFrom(ByVal context As System.ComponentModel.ITypeDescriptorContext, ByVal sourceType As System.Type) As Boolean
- If sourceType Is GetType(String) Then
- Return True
- Else
- Return MyBase.CanConvertFrom(context, sourceType)
- End If
- End Function
- Public Overloads Overrides Function CanConvertTo(ByVal context As System.ComponentModel.ITypeDescriptorContext, ByVal destinationType As System.Type) As Boolean
- If destinationType Is GetType(String) Then
- Return True
- Else
- Return MyBase.CanConvertTo(context, destinationType)
- End If
- End Function
- Public Overloads Overrides Function ConvertFrom(ByVal context As System.ComponentModel.ITypeDescriptorContext, ByVal culture As System.Globalization.CultureInfo, ByVal value As Object) As Object
- If TypeOf value Is String Then
- Try
- Dim a As New FString
- a.Write(value)
- Return a
- Catch
- Throw New InvalidCastException(value)
- End Try
- Else
- Return MyBase.ConvertFrom(context, culture, value)
- End If
- End Function
- Public Overloads Overrides Function ConvertTo(ByVal context As System.ComponentModel.ITypeDescriptorContext, ByVal culture As System.Globalization.CultureInfo, ByVal value As Object, ByVal destinationType As System.Type) As Object
- If destinationType is GetType(String) Then
- Return DirectCast(value, FString).Read
- Else
- Return MyBase.ConvertTo(context, culture, value, destinationType)
- End If
- End Function
- End Class
Die Umwandlung ist folgendermaßen natürlich problemlos möglich:
Aber ich würde auch gerne die direkte Schreibweise nutzbar machen - also
Weiß jemand eine Lösung? Wahrscheinlich stelle ich mich einfach nur blöd an.
LG
Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „kevin89“ ()