W MSDN Czytałem ten temat EnumConverter:Pierwsze konwerter typu
Nigdy nie należy utworzyć instancję EnumConverter. Zamiast tego wywołaj metodę GetConverter klasy TypeDescriptor. Aby uzyskać więcej informacji, zobacz przykłady w klasie bazowej TypeConverter.
Czy ktoś wie dlaczego i czy jest to prawda dla moich własnych wdrożonych konwerterów?
Na przykład, mam klasy GradientColor i konwerter GradientColorConverter. Powinienem napisać
new GradientColorConverter().ConvertFrom(colorString)
lub
TypeDescriptor.GetConverter(typeof(GradientColor)).ConvertFrom(colorString);
Właściwie to działa w obie strony, ale co jest lepsze?
Jak wiem, typ konwertera określony w atrybucie klasy. Jak to może być inne w innej aplikacji? –
TypeDescriptor odczytuje z systemu typów (atrybuty lub konwersja typu domyślnego), ale rozszerza je, aby umożliwić dostosowywanie w środowisku wykonawczym. Nigdy tego nie robiłem, ale jest w dokumentach. Spójrz na TypeDescriptionProvider. Dzięki temu łatwiej będzie ponownie wykorzystać zajęcia w późniejszej wersji aplikacji. – yzorg