C#3.0のextension methodsでできるんじゃないの?