delegesi alınıyor ben bir sınıfın yöntemlerini teftiş ve belirli imzaya olanlar dahil tarafından doldurulur listede bir açılır menü var. Sorun, seçilen öğeyi listeden almak ve bu yöntemi sınıfta çağırmak için temsilci almaktır. İlk yöntem işe yarıyor, ancak ikincisinin bir kısmını anlayamıyorum. Örneğin MethodInfo
,public delegate void MyDelegate(MyState state);
public static MyDelegate GetMyDelegateFromString(string methodName)
{
switch (methodName)
{
case "CallMethodOne":
return MyFunctionsClass.CallMethodOne;
case "CallMethodTwo":
return MyFunctionsClass.CallMethodTwo;
default:
return MyFunctionsClass.CallMethodOne;
}
}
public static MyDelegate GetMyDelegateFromStringReflection(string methodName)
{
MyDelegate function = MyFunctionsClass.CallMethodOne;
Type inf = typeof(MyFunctionsClass);
foreach (var method in inf.GetMethods())
{
if (method.Name == methodName)
{
//function = method;
//how do I get the function to call?
}
}
return function;
}
nasıl ikinci yöntemin dışına yorumladı bölüm işe alabilirim? Nasıl temsilci içine MethodInfo
dökme do?
Teşekkürler!
Düzenleme: İşte çalışma çözümdür.
public static MyDelegate GetMyDelegateFromStringReflection(string methodName)
{
MyDelegate function = MyFunctionsClass.CallMethodOne;
Type inf = typeof(MyFunctionsClass);
foreach (var method in inf.GetMethods())
{
if (method.Name == methodName)
{
function = (MyDelegate)Delegate.CreateDelegate(typeof(MyDelegate), method);
}
}
return function;
}
Nkohari'ye teşekkürler, tam ihtiyacım olduğu gibi çalıştım. –