Предполагая, что вы знаете тип, имеете его экземпляр и метод на самом деле общедоступен:
string methodName = parent.Element("METHOD").Value;
MethodInfo method = type.GetMethod(methodName);
object[] arguments = (from p in method.GetParameters()
let arg = element.Element(p.Name)
where arg != null
select (object) arg.Value).ToArray();
// We ignore extra parameters in the XML, but we need all the right
// ones from the method
if (arguments.Length != method.GetParameters().Length)
{
throw new ArgumentException("Parameters didn't match");
}
method.Invoke(instance, arguments);
Обратите внимание, что здесь выполняется сопоставление имен с учетом регистра, которое не будет работать с вашим образцом. Если вы хотите не учитывать регистр, это немного сложнее, но все же выполнимо - лично я бы посоветовал вам сделать так, чтобы XML соответствовал методу, если это вообще возможно.
(Если это не публично, вам нужно предоставить некоторые флаги привязки для вызова GetMethod
.)