Consider the following code: public class MyControl : Control { [ TypeConverter ( typeof (SomePropertyConverter))] public Foo SomeProperty { get { ... } } } [ TypeConverter ( typeof (FooConverter))] public class Foo { ... } Now here are a couple of questions: