У меня есть следующий интерфейс:
public interface IPropertyEditor
{
string GetHTML();
string GetCSS();
string GetJavaScript();
}
Я хочу получить все классы, которые наследуются от IPropertyEditor, вызвать методы и получить возвращаемые значения.
Я пыталсяи лучшее, что я сделал с помощью поиска: следующее:
var type = typeof(IPropertyEditor);
var types = AppDomain.CurrentDomain.GetAssemblies()
.SelectMany(s => s.GetTypes())
.Where(p => type.IsAssignableFrom(p));
foreach (var item in types)
{
string html = (string)item.GetMethod("GetHTML").Invoke(Activator.CreateInstance(item, null), null);
}
Проблема в том, что он выдает следующее исключение:
MissingMethodException: Constructor on type 'MyAdmin.Interfaces.IPropertyEditor' not found.
Я думаю, что метод CreateInstance считает, чтоявляется классом и пытается создать экземпляр, но не удается, потому что тип является интерфейсом.
Как решить эту проблему?