タグ

ブックマーク / urasandesu.blogspot.com (2)

  • C# 動的メソッド入れ替え - Apply a monkey patch to any static languages on CLR -

    たまにはこんな、手品の話も。 会社の飲み会の時のネタとしては使えないですが、仕事では使えること請け合いです! (`・ω・´) 手元にコンパイル済みの dll/exe があるとき、その振る舞いを実行時にだけ変えてみたいってことがしばしばあるかと。例えば、以下のようなシチュエーションが思いつきます・・・というか実際ありました (^_^;) ドキュメントが不十分で挙動がよくわからない。調査するために、デバッグプリントを仕込みたい。 特定の条件になると内部で例外がスローされちゃう。どうもバグみたいなので、修正したいけどソースコードがない。 パラメータを変化させながらタイミングを調整したい。開発効率を上げるために、動的言語と連携するような仕組みを一時的に入れ込みたい。 外部機器やネットワーク、DB に依存してて自動テストがしにくい。テスト中はスタブに入れ替えたい。 RubyPython みたい

    rti7743
    rti7743 2011/12/14
    c#での動的メソッド入れ替え方法。profile apiからハックしていくみたい。面白そう。
  • 続・C# 動的メソッド入れ替え - Sequel: Apply a monkey patch to any static languages on CLR -

    申し訳程度の C# 要素です (>_<) @urasandesu こと、杉浦と申します。はじめましての方ははじめまして! C# Advent Calendar 2011 の 13 日目を担当させていただくことになりました。よろしくお願いいたします。 ネタは、.NET 開発の中でも日の当たりにくい低レイヤな部分、「アンマネージ API」を取り上げます。 タイトルにもある通り「C# で動的にメソッドを入れ替える」という、マネージコードだけではなかなか実現できないことをやってみることにします。また、元々日語になっている資料やサンプルコードが少ない分野ですので、これからコンパイラやプロファイラなどをやってみたい方の学習の一助として、もしくはどんなものかちょっと覗いてみたい方への参考になればと思う次第です。 ちなみに、私の Blog のこの記事やこの記事辺りの続編となりますので、もし興味がありまし

    続・C# 動的メソッド入れ替え - Sequel: Apply a monkey patch to any static languages on CLR -
    rti7743
    rti7743 2011/12/14
    動的メソッド入れ替えは、やっぱり欲しい機能の一つだと思う。C++でやりたくてsexyhookなんつーもんを作ったけど、ユーザレベルで後付すると黒魔術の世界になるから、本来は言語レベルで保証してほしいなと思う。
  • 1