私が取り組んでいる問題(.NET 3.5 WinFormsアプリケーション)の解決策を考えています。Reflection.Emitのパフォーマンスペナルティ
私たちのアプリでは、アプリケーションのユーザが引数を入力する多くのメソッド(C#)があります。
名、日付が現在の単純なテキストボックスを使用して入力されpublic void DoSomething(string name, DateTime date)
{
// ...
}
:
例は次のようなものになるだろう。 リッチエディタ、パスワードで保護された入力ボックス、オートコンプリートなどのメリットがあります。
PropertyGridを使用してユーザーの入力を希望しますが、このコントロールはオブジェクトにのみバインドでき、引数にはバインドできません。
私はProperyGridに関するMSDNの雑誌からの両方の優れた記事を読んだ:
は、しかし、これはオブジェクトPropertyGridのにバインドされるシナリオで有用であるように思わ私の場合ではない、事前に知られています。
このシナリオはサポートできますか?シンプルで簡単に実装できるソリューションはありますか?
Reflection.Emitを使用して実行時にプロパティのメソッドの引数となる "temp"オブジェクトを作成すると考えました。 私はReflection.Emit名前空間を使用する前にこれをしたことがありませんでした。これを使用した場合のパフォーマンス上のペナルティを知りたいですか? (実際に実行時にコードをコンパイルするか、それはどのように動作するのですか?)
あなたは、このような用途にはExpandoオブジェクトを使用するために停止しませんか? –
私の質問を編集しました - 3.5、no Expandoを使用してください。 –
次に、辞書を使ってReflection APIでメソッドを呼び出すのはどうですか?私は、特定のクラスメソッドに任意のWebメソッド呼び出しを集中するために、CMSで同じことを使用します。 –