【发布时间】:2013-07-10 04:48:31
【问题描述】:
如果我有这样的事情
IFoo f = FooFactory.CreateFoo1();
如何选择一个随机的CreateFoo 方法来调用? FooFactory 是静态的,包含大约 15 种不同的 IFoo 类型。每次按下按钮时,我想随机调用其中一个。我试过这个
var methods = typeof(FooFactory).GetMethods(BindingFlags.Public | BindingFlags.Static
| BindingFlags.InvokeMethod);
int index = random.Next(methods.Length);
IFoo randomFoo = (IFoo)(methods[index].Invoke(null, null));
但这会导致System.Reflection.TargetParameterCountException。如何调用随机方法?
【问题讨论】:
标签: c# reflection methods static invoke