Table of Contents

Class ValueTypeConverter<T>

Namespace
NanoByte.Common.Values.Design
Assembly
NanoByte.Common.dll

Abstract base-class for easily creating a TypeConverter for a struct (value type).

[RequiresUnreferencedCode("Uses reflection to discover properties.")]
public abstract class ValueTypeConverter<T> : TypeConverter where T : struct

Type Parameters

T

The struct to create the TypeConverter for.

Inheritance
object
ValueTypeConverter<T>
Inherited Members
Extension Methods

Examples

Add this attribute to the struct:

[TypeConverter(typeof(ClassDerivedFromThisOne))]

Remarks

Providing a TypeConverter for a struct improves the runtime experience with PropertyGrids.

Properties

NoArguments

The number of arguments the constructor of T has.

protected abstract int NoArguments { get; }

Property Value

int

Methods

CanConvertFrom(ITypeDescriptorContext?, Type)

Returns whether this converter can convert an object of the given type to the type of this converter, using the specified context.

public override bool CanConvertFrom(ITypeDescriptorContext? context, Type sourceType)

Parameters

context ITypeDescriptorContext

An ITypeDescriptorContext that provides a format context.

sourceType Type

A Type that represents the type you want to convert from.

Returns

bool

true if this converter can perform the conversion; otherwise, false.

CanConvertTo(ITypeDescriptorContext?, Type?)

Returns whether this converter can convert the object to the specified type, using the specified context.

public override bool CanConvertTo(ITypeDescriptorContext? context, Type? destinationType)

Parameters

context ITypeDescriptorContext

An ITypeDescriptorContext that provides a format context.

destinationType Type

A Type that represents the type you want to convert to.

Returns

bool

true if this converter can perform the conversion; otherwise, false.

ConvertFrom(ITypeDescriptorContext?, CultureInfo?, object)

Converts the given object to the type of this converter, using the specified context and culture information.

public override object? ConvertFrom(ITypeDescriptorContext? context, CultureInfo? culture, object value)

Parameters

context ITypeDescriptorContext

An ITypeDescriptorContext that provides a format context.

culture CultureInfo

The CultureInfo to use as the current culture.

value object

The object to convert.

Returns

object

An object that represents the converted value.

Exceptions

NotSupportedException

The conversion cannot be performed.

ConvertTo(ITypeDescriptorContext?, CultureInfo?, object?, Type)

Converts the given value object to the specified type, using the specified context and culture information.

public override object? ConvertTo(ITypeDescriptorContext? context, CultureInfo? culture, object? value, Type destinationType)

Parameters

context ITypeDescriptorContext

An ITypeDescriptorContext that provides a format context.

culture CultureInfo

A CultureInfo. If null is passed, the current culture is assumed.

value object

The object to convert.

destinationType Type

The Type to convert the value parameter to.

Returns

object

An object that represents the converted value.

Exceptions

ArgumentNullException

The destinationType parameter is null.

NotSupportedException

The conversion cannot be performed.

CreateInstance(ITypeDescriptorContext?, IDictionary)

Creates an instance of the type that this TypeConverter is associated with, using the specified context, given a set of property values for the object.

public override object CreateInstance(ITypeDescriptorContext? context, IDictionary propertyValues)

Parameters

context ITypeDescriptorContext

An ITypeDescriptorContext that provides a format context.

propertyValues IDictionary

An IDictionary of new property values.

Returns

object

An object representing the given IDictionary, or null if the object cannot be created. This method always returns null.

GetArguments(T)

protected abstract object[] GetArguments(T value)

Parameters

value T

Returns

object[]

The arguments for the constructor of T.

GetConstructor()

[SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate")]
protected abstract ConstructorInfo GetConstructor()

Returns

ConstructorInfo

The constructor used to create new instances of T (deserialization).

GetCreateInstanceSupported(ITypeDescriptorContext?)

Returns whether changing a value on this object requires a call to CreateInstance(IDictionary) to create a new value, using the specified context.

public override bool GetCreateInstanceSupported(ITypeDescriptorContext? context)

Parameters

context ITypeDescriptorContext

An ITypeDescriptorContext that provides a format context.

Returns

bool

true if changing a property on this object requires a call to CreateInstance(IDictionary) to create a new value; otherwise, false.

GetElementSeparator(CultureInfo)

The separator to place between individual elements.

protected virtual string GetElementSeparator(CultureInfo culture)

Parameters

culture CultureInfo

Returns

string

GetObject(IDictionary)

protected abstract T GetObject(IDictionary propertyValues)

Parameters

propertyValues IDictionary

Returns

T

A new instance of T.

GetObject(string[], CultureInfo)

protected abstract T GetObject(string[] values, CultureInfo culture)

Parameters

values string[]
culture CultureInfo

Returns

T

A new instance of T.

GetProperties(ITypeDescriptorContext?, object, Attribute[]?)

Returns a collection of properties for the type of array specified by the value parameter, using the specified context and attributes.

public override PropertyDescriptorCollection GetProperties(ITypeDescriptorContext? context, object value, Attribute[]? attributes)

Parameters

context ITypeDescriptorContext

An ITypeDescriptorContext that provides a format context.

value object

An object that specifies the type of array for which to get properties.

attributes Attribute[]

An array of type Attribute that is used as a filter.

Returns

PropertyDescriptorCollection

A PropertyDescriptorCollection with the properties that are exposed for this data type, or null if there are no properties.

GetPropertiesSupported(ITypeDescriptorContext?)

Returns whether this object supports properties, using the specified context.

public override bool GetPropertiesSupported(ITypeDescriptorContext? context)

Parameters

context ITypeDescriptorContext

An ITypeDescriptorContext that provides a format context.

Returns

bool

true if GetProperties(object) should be called to find the properties of this object; otherwise, false.

GetValues(T, ITypeDescriptorContext?, CultureInfo)

protected abstract string[] GetValues(T value, ITypeDescriptorContext? context, CultureInfo culture)

Parameters

value T
context ITypeDescriptorContext
culture CultureInfo

Returns

string[]

The elements of T converted to strings.