从类调用随机方法

时间:2013-07-11 19:07:37

标签: c# reflection methods static invoke

如果我有这样的东西

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

1 个答案:

答案 0 :(得分:2)

您应该更改的唯一内容是typeof(IFoo),因为您要调用FooFactory

之一的静态方法

尝试typeof(FooFactory)

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