Bu küçük sorun var, Jenerik olmayan bir tür üzerinde bir genel yöntem MethodInfo geri almak için hangi argümanlar Type.GetMethod geçmek geçmek anlayamıyorum. Özellikle, bu tip tanımı var: Birkaç denedim Type.GetMethod de geçmesi gerekenGenel olmayan bir .NET türünde bir genel yöntem MethodInfo nasıl edinilir?
public static class A
{
public static B F<T>(bool dummy)
{
}
public static B F<T>(IEnumerable<T> arg)
{
...
}
}
, ama hiçbiri F yönteminin MethodInfo döndürecektir.
Type.GetMethods veya Type.FindMember'i çağırabileceğimin farkındayım, ancak Type.GetMethod ile ilgileniyorum.
Herhangi bir fikrin var mı?
Teşekkürler.
DÜZENLEME
Aslında, benim kod biraz daha karmaşıktır. Genel yöntem aşırı yüklenmiştir, bu yüzden Type.GetMethod işlevini yalnızca işlev adıyla kullanamıyorum. Bunları varyantları çalıştı:
typeof(A).GetMethod("F", BindingFlags.Static | BindingFlags.Public, null, new Type[]{ typeof(IEnumerable<>) }, null)
typeof(A).GetMethod("F`1", BindingFlags.Static | BindingFlags.Public, null, new Type[]{ typeof(IEnumerable<>) }, null)
typeof(A).GetMethod("F[T]", BindingFlags.Static | BindingFlags.Public, null, new Type[]{ typeof(IEnumerable<>) }, null)
typeof(A).GetMethod("F[[T]]", BindingFlags.Static | BindingFlags.Public, null, new Type[]{ typeof(IEnumerable<>) }, null)
Lütfen denediğiniz kodu gönderin. –
Sorumu değiştirdim. Teşekkürler. – mark
@Mark Cevabımı değiştirdim. –