From a few quick tests, the name needs to be fuly qualified:
const string name = "System.ComponentModel.Design.MultilineStringEditor, System.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a";
attribs.Add(new EditorAttribute(name, typeof(UITypeEditor)));
Internally, it uses Type.GetType
, and:
var type1 = Type.GetType("System.ComponentModel.Design.MultilineStringEditor, System.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a");
// ^^^ not null
var type2 = Type.GetType("System.ComponentModel.Design.MultilineStringEditor, System.Design");
// ^^^ null
Of course, you could just use:
attribs.Add(new EditorAttribute(typeof(MultilineStringEditor), typeof(UITypeEditor)));
Alternatively, you can override GetEditor
and do whatever your want.