2

こんなのあったら

IFoo f = FooFactory.CreateFoo1();

CreateFoo呼び出すメソッドをランダムに選択するにはどうすればよいですか? FooFactory静的で、約 15 の異なるIFoo型が含まれています。ボタンが押されるたびに、そのうちの 1 つをランダムに呼び出したいと思います。私はこれを試しました

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)あるのは、の静的メソッドの 1 つを呼び出したいからです。FooFactory

試すtypeof(FooFactory)

PS:メソッドにパラメーターがない(またはすべてが同じ数とタイプのパラメーターを持っている)と仮定します

于 2013-07-11T19:11:56.807 に答える