Отражательная или сериализация XML - то, что Вы ищете.
Используя отражение Вы могли искать тип с помощью чего-то вроде этого
public IYourInterface GetClass(string className)
{
foreach (Assembly asm in AppDomain.CurrentDomain.GetAssemblies())
{
foreach (Type type in asm.GetTypes())
{
if (type.Name == className)
return Activator.CreateInstance(type) as IYourInterface;
}
}
return null;
}
Примечание, что это пройдет все блоки. Вы могли бы хотеть уменьшить его, чтобы только включать в настоящее время выполняющийся блок.
Для присвоения значений свойств Вы также используете отражение. Что-то вроде
IYourInterface o = GetClass("class1");
o.GetType().GetProperty("prop1").SetValue(o, "foo", null);
, В то время как отражение могло бы быть наиболее гибким решением, необходимо также смотреть на сериализация XML для пропуска выполнения тяжелого подъема себя.
Я знаю, что это - старое сообщение, но я нашел это лучшее решение, которое могло помочь другим, у которых в настоящее время есть эта проблема.
В Solution Explorer
, выберите файл/файлы, указанный в сообщении об ошибке или папке, содержащей эти файлы.
Right-click
затем выбор Exclude From Project
.
Щелчок Refresh
кнопка.
Выбор файлы или папка снова, right-click
затем выбор Include In
Project
.