C# EnumConverter构造函数如何获取类型参数

C# EnumConverter构造函数如何获取类型参数,c#,constructor,parameter-passing,typeconverter,C#,Constructor,Parameter Passing,Typeconverter,如果我创建一个用于自定义枚举显示的类,如下所示: public class MyEnumConverter : EnumConverter { public MyEnumConverter(Type type) : base(type) { } public override object ConvertTo(...) public override object ConvertFrom(...) } 当我用MyEnumConverter作为TypeCo

如果我创建一个用于自定义枚举显示的类,如下所示:

public class MyEnumConverter : EnumConverter
{
    public MyEnumConverter(Type type) : base(type)
    {
    }
    public override object ConvertTo(...)
    public override object ConvertFrom(...)
}
当我用
MyEnumConverter
作为
TypeConverter
标记枚举时:

[TypeConverter(typeof(MyEnumConverter))]
public enum MyEnum
{
    SomeValue,
    OtherValue
}

它按预期工作。
EnumConverter
构造函数如何接收表示枚举类型的数据?
TypeConverter
是否知道如何专门处理
EnumConverter
并为我填写此文档?这是背景中发生的事情的语法糖吗?这种行为是否可以自定义,以便如果我想为自定义的
TypeConverter
实现一个参数化构造函数,我可以通知
TypeConverter
如何处理自定义构造函数?

从内部看,
TypeConverter
使用复杂的嵌套
if
语句处理所需转换器的采购。类似()的内容:

从第一个
if
语句可以看出,它知道将特殊的
Type
参数传递到构造函数中


作为对第二个问题的回答,我是否可以使用自定义参数化构造函数创建自定义的
类型转换器
,该构造函数可以很好地与
类型转换器
配合使用,这看起来很可疑。

这是要在某个设计器中显示的吗?负责这一点的代码可能在框架中,ILSpy可以向您展示它的功能。它很可能将值作为数组传递到反射的构造函数调用中。
    internal static TypeConverter GetCoreConverterFromCustomType(Type type)
    {
        TypeConverter typeConverter = null;
        if (type.IsEnum)
        {
            // Need to handle Enums types specially as they require a ctor that
            // takes the underlying type.
            typeConverter = new System.ComponentModel.EnumConverter(type);
        }
        else if (typeof(Int32).IsAssignableFrom(type))
        {
            typeConverter = new System.ComponentModel.Int32Converter();
        }
        else if (typeof(Int16).IsAssignableFrom(type))
        {
            typeConverter = new System.ComponentModel.Int16Converter();
        }
        //...