Мне нужна небольшая помощь!
Я создаю пользовательский элемент управления во время выполнения, десериализацию xml, который содержит информацию.
Мои пользовательские элементы управления имеют два свойства: одно с именем события, второе с кодом, который выполняется при возникновении события (т. Е. Тело метода).
Я извлекаю значения в две переменные. Мне нужно добавить и обработать мой элемент управления во время выполнения для события, которое выполняет код, хранящийся в переменной.
string eventName = "Click";
string codeToRun= "MessageBox.Show(\"Hello!\");"
Type tControl = result.GetType();
EventInfo ev = tControl.GetEvent(eventName);
Type tDelegate = ev.EventHandlerType;
MethodInfo addHandler = ev.GetAddMethod();
Type returnType = tDelegate.GetMethod("Invoke").ReturnType;
ParameterInfo[] parameters = tDelegate.GetMethod("Invoke").GetParameters();
Type[] typeParameters = new Type[parameters.Length];
for (int i = 0; i < parameters.Length; i++)
{
typeParameters[i] = parameters[i].ParameterType;
}
DynamicMethod handler = new DynamicMethod(
"",
null,
typeParameters);
//here I need to compile and add my custom source code stored in codeToRun
Delegate dEmitted = handler.CreateDelegate(tDelegate);
addHandler.Invoke(result, new Object[] { dEmitted });
Есть предложения?
заранее благодарю за помощь!