- - PR -
関数情報などから引数の値を取得したい
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2008-04-08 12:28
ReflectionのMethodBaseクラスに、GetParametersというメソッドがありますが、
パラメータの名前や型情報は取得出来るのですが、与えられた値までは取得出来ませんでした。 Reflectionはメタデータを扱うものということで当然なのかもしれませんが、 似たような方法で、引数に与えられた値を動的に取得する方法は無いでしょうか? ある関数が呼ばれた時、 その関数の名前や引数に与えられた値を、別の関数に渡してあげる事が目的です。 ベタで書けば渡せますが、出来ればそこを動的に… 使用環境は、 VisualStudio2005 .NetFramework2.0 VB.net です。 よろしくお願いします。 | ||||
|
投稿日時: 2008-04-08 19:37
条件が厳しいですが、以下の条件を満たすことができるのなら、RealProxy を使って実現できます。
・対象インスタンスをインターフェイス経由で扱う、または対象インスタンスが MarshalByRefObject 派生クラスのインスタンス ・プロキシを経由させることができる (インスタンスの生成を制御できる、またはインスタンスをすり替えるができる等) RealProxy を継承するクラスを定義することで、透過プロキシを生成することができます。 透過プロキシ経由でのメンバー呼び出し時に処理を挟むことができますので、引数を取得することができます。 以下、サンプルです。 (C# ですが)
参考 http://www.ne.jp/asahi/nami/mei/cstips/adapter.html http://blog.livedoor.jp/gushwell/archives/21880825.html _________________ C#と諸々 [ メッセージ編集済み 編集者: よこけん 編集日時 2008-04-08 19:37 ] | ||||
|
投稿日時: 2008-04-08 20:04
参考:.NETでアスペクト指向プログラミング(AOP)
| ||||
|
投稿日時: 2008-04-09 01:30
よこけんさん
kumaさん 返答ありがとうございます! 提示して頂いたコードや参考資料は、属性やProxyクラスというモノを使うのですね。 初めて見るキーワードでした。 少し時間がかかりそうですが、熟読して理解します! |
1