如何为特定类型添加 TypeConverter?

How can I add a TypeConverter for a particular type?

在 C# 中,如果我有一个 属性 类型的对象,并且我知道对象的类型,我如何显示 属性 的默认类型转换器?

这是一些代码:

private Type _valueType { get; set; }
public Type ValueType
{
    get
    {
        return _valueType;
    }
    set
    {
        _valueType = value;
    }
}
private object _value { get; set; }
public object Value
{
    get
    {
        return _value;
    }
    set
    {
        _value = value;
    }
}

在上面的代码中,如果 ValueType 属性 是一个 bool,我如何在 Value 属性 上显示 bool 的默认 TypeConverter?

这是针对 PropertyGrid 对象的 SelectedObject。

我有一种预感,你可以达到你想要的效果through the use of Generics

class GenericsExample<T>{

    private T _value { get; set; }
    public T Value
    {
        get
        {
            return _value;
        }
        set
        {
            _value = value;
        }
    }

}

然后可以使用给定类型(例如 bool)创建 class 的实例,并且可以从 class 返回任何该类型的变量:

class Program
{

    static void Main()
    {
        var genericsExample = new GenericsExample<bool>();
        genericsExample.Value = true;
        Console.WriteLine("Value is " + genericsExample.Value);
    }
}

这是否符合您要查找的内容?

我找到了需要的代码。

这里是:

public TypeConverter GetValueTypeConverter()
{
    TypeConverter typeConverter = TypeDescriptor.GetConverter(_valueType);
    return typeConverter;
}