2

如果我有这样的事情

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. 如何调用随机方法?

4

1 回答 1

2

你唯一应该改变的是typeof(IFoo)因为你想调用的静态方法之一FooFactory

尝试typeof(FooFactory)

PS:假设您的方法没有任何参数(或都具有相同数量和类型的参数)

于 2013-07-11T19:11:56.807 回答