StringConverter в плагине
Я разрабатываю программное обеспечение, которое использует плагины. Это шаблоны зданий. Возможные решения фонда в dlls один за другим. При управлении имуществом фундамента здания можно выбрать из списка типов фундамента. Создание списка строк выглядит следующим образом:
private string kindOf;
[TypeConverter(typeof(FileNames4Foundation)), CategoryAttribute("Foundation"), Description("Foundation pattern")]
public string KindOf
{
get { return kindOf; }
set
{
kindOf = value;
Update(); //update foundation
RegistryWorks.WriteString("Foundation.KindOf", kindOf); //store setting up to the registry
}
}
TypeConverter выглядит так:
public class FileNames4Foundation : StringConverter
{
public string[] GetNames()
{
List<string> names = Utils.GetNames("\\RibbonPages\\Polygon\\Pattern\\Foundation\\", "dll");
return names.ToArray();
}
public override bool GetStandardValuesSupported(ITypeDescriptorContext context)
{
return true;
}
public override StandardValuesCollection GetStandardValues(ITypeDescriptorContext context)
{
List<string> names = Utils.GetNames("\\RibbonPages\\Polygon\\Pattern\\Foundation\\", "dll");
return new StandardValuesCollection(GetNames());
}
}
Это решение работает абсолютно правильно.
Теперь мне пришлось изменить систему программ, как показано ниже. До сих пор различные типы зданий были исправлены в программном коде. В новой системе типы зданий будут загружаться в основную программу из плагинов. Схема следующая:
Main program
- Mobil type facility plugin
-
-
- Polygon type facility plugin
- Foundation
- Bar plugin
- Foot plugin
- Slant plugin
- Slab
- Cantilever plugin
- Normal plugin
- Roof
- Mansard plugin
- Pitched plugin
- Tower type facility plugin
-
-
Изменение приводит к тому, что список плагинов с обработанными плагинами в свойствах не работает. При отладке мы видим, что программа не запускалась до части "StringConverter". Я хотел бы, чтобы чтение свойств плагинов работало и в новой системе. Заранее спасибо за вашу помощь!