antsk blog

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
  1. --/--/--(--) --:--:--|
  2. スポンサー広告

WPFのValueConverterをXAMLにラムダ式で書いてみたりとか

ネタ元:DelegateConverter みたいなもの

記事中でも言及されてるけどイベントだと分離コード側に変換処理を書かないといけなくて
いまいちありがたみがない。

XAMLに直接変換処理をラムダ式の形で書けるといーなー。
……というわけで調べてみたらCodeDOMで文字列を実行時にコンパイルして実行できちゃうみたい。
[サンプル] 式木の利用例
なんで、これを参考に作ってみた。

DynamicCompile.mp3 ※ 例によって拡張子変えているzip


使い方はこんな感じ。年齢⇔生まれた年の単純な変換。


……便利そうだ……が、この実装だとデリゲート1つだけを保持したアセンブリを
ばんばん作って読み込むことになるなぁ。いいのかなぁ?

Expressionがシリアライズできるんであれば別AppDomainでアセンブリ生成してExpression treeを構築した後、
メイン側のAppDomainでFuncに変換すればアセンブリを生成したドメインをアンロードできるんだけど。



しかしC#でCodeDOMやExpression Treeを使った実行時の構築は
かなり黒魔術ちっくだなー。作るのにずいぶんと時間を使ってしまった。

Lispなんかの動的言語に慣れてる人はこんなのをふつーに使いこなしてるのだろうか?
スポンサーサイト

テーマ:プログラミング - ジャンル:コンピュータ

  1. 2009/11/19(木) 23:55:59|
  2. WPF
  3. | トラックバック:0
  4. | コメント:0

プロフィール

antsk

Author:antsk
主にC#のプログラマ。

最新記事

最新コメント

最新トラックバック

月別アーカイブ

カテゴリ

未分類 (0)
.net (1)
WPF (8)

検索フォーム

RSSリンクの表示

リンク

このブログをリンクに追加する

ブロとも申請フォーム

この人とブロともになる

QRコード

QRコード

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。