4

多くのパラメーターを持つさまざまなメソッドを持つサービスがあります。サービス クライアントを作成しましたが、考えられるすべてのパラメーターと関数の UI を作成するのは非常に面倒なので、メソッドごとに 1 つのボタンしかなく、コードですべてのパラメーターを構成します。これはうまく機能しますが、別のパラメーターが必要になるたびに、コードを変更する必要があります。そのため、コンパイルしてその場で呼び出すコードを含むテキストボックスがあれば、非常に便利に使用できると思いました。だから私が欲しいのは、次のようなコードを持つテキストボックスがあることですExecuteOperation1("a", "b", "c")ExecuteOperation はフォーム クラスで定義されています。そして、その場で簡単にパラメーターを変更できます。私はそれを行う方法を検索しようとしましたが、すべての例は名前空間とクラスなどを使用したコンパイルを示しています。どういうわけか、クラス内で動的コードを実行する方法はありますか。もちろん、私の問題に対する別の簡単な解決策も高く評価されています。

4

2 に答える 2

0

常に次のように見える場合ExecuteOperation1("a", "b", "c")は、リフレクションを使用してメソッドとパラメーターの名前を決定できます。たとえば、次のコードはメソッドのリストを提供します。MethodInfo.Invoke を使用してメソッドを呼び出すことができます。

typeof(Service).GetMethods(BindingFlags.Public|BindingFlags.Instance);

このアプローチはあまり柔軟ではありませんが、比較的理解しやすく、追加のライブラリは必要ありません。

于 2013-06-20T11:02:09.743 に答える