الحصول على ميثودينفو للعد.افتراضيفارغ
-
28-10-2019 - |
سؤال
أنا بناء بعض التعبير لينق ومحاولة الحصول على عقد من ميثودينفو ل IEnumerable.DefaultIfEmpty
(http://msdn.microsoft.com/en-us/library/bb360179.aspx).ما بدا أنه مهمة سهلة ولكني جاهل لماذا لا يعمل.
typeof(Enumerable).GetMethod("DefaultIfEmpty", new[] { typeof(IEnumerable<>) });
typeof(Enumerable).GetMethod("DefaultIfEmpty", new[] { typeof(IEnumerable<>).MakeGenericType(typeof(WorkitemListModel)) });
المحلول
الحصول على طرق عامة هو الألم ، أن نكون صادقين.لا أعرف طريقة أفضل من الاستخدام:
var method = typeof(Enumerable).GetMethods()
.Where(m => m.Name == "DefaultIfEmpty")
.Where(m => m.GetParameters().Length == 1)
.Single();
للاتصال GetMethod
, ، يجب أن يكون لديك نوع المعلمة الصحيح بالضبط ، بما في ذلك معلمة النوع العام الصحيحة للمعلمة.مرة واحدة كنت قد حصلت على ذلك مرة واحدة يمكنك القيام بذلك ، ولكن حتى ذلك الحين أعتقد أن ما سبق هو كل ما هو متاح :(
لا تنتمي إلى StackOverflow