То, что вы описываете, технически возможно, но нецелесообразно.Вы можете использовать отражение, чтобы найти тип с именем CallbackClass
с помощью метода с именем CallbackMethod
.Но это открывает банки с червями.
- Вам нужно создать экземпляр CallbackClass?Если так, есть ли у него параметры конструктора?
- Является ли CallbackMethod
static
? - Этот метод вообще существует?
Когда вы вызываете методы в своем коде, компилятор позаботится об этом за вас.Если вы попытаетесь вызвать метод, который не существует, он не скомпилируется.Если вы попытаетесь вызвать метод экземпляра без создания экземпляра класса, он не скомпилируется.
Если вы храните имена методов и классов вне вашего кода - в XML или почти во всем остальном -тогда вы потеряете эту сеть безопасности.Вы можете сослаться на метод, который не существует или который вы не можете вызвать по ряду причин.
Лучший подход - позволить вашему приложению определять, что оно должно делать, основываясь на том, что оно находит вXML-документ, а затем позволяет вашему приложению решать, какие методы оно должно вызывать.
Например:
while(reader.Read()) {
switch(reader.Name) {
case "Callback":
callbackActions += SomeClass.SomeMethod;;
break;
}