Это трудно сказать, что ваш случай использования точно, но вот другой угол на ваш вопрос, что может помочь. Я предполагаю, что все классы, которые вы можете указать в вашем конфиге, имеют одинаковое свойство (то есть name
). Если это так, вы можете использовать все классы для реализации одного и того же интерфейса, тогда вам не нужно беспокоиться о имени класса. Например:
Ваш интерфейс:
public interface IName
{
string Name { get; set; }
}
Класс, который использует интерфейс:
public class Something : IName
{
public string Name { get; set; }
public string AnotherProperty { get; set; }
}
И метод, который использует любой объект, который реализует интерфейс IName
:
public void DoSomething(IName input)
{
Console.WriteLine(input.Name);
}
Итак, теперь вы можете вызвать метод, не беспокоясь о именах классов:
var someObject = new Something();
someObject.Name = "Bob";
DoSomething(someObject);
Чтобы уточнить, вы хотите, чтобы ваш объект был передан классу, изображенному в строке, содержащейся в файле конфигурации? – JRLambert
Как вы создаете экземпляры этих классов? –
Что делать, если класс не имеет свойства имени? –