2011-04-01から1ヶ月間の記事一覧

MEFでオープンジェネリック型をエクスポート

MefContribにはジェネリック用のGenericCatalogクラスがあります。これを使うとオープンジェネリック型をエクスポートすることができます。ただ、ドキュメント不足な上に、ちょっと癖がありそうです。公開するインタフェースは、こんな感じです。 // このイ…

LinFu.DynamicProxyの使い方が分からない

MefContribにCastle以外にもLinFu.DynamicProxyが含まれていたので弄ってみたのですが、どうにも使い方が分かりません。 using LinFu.DynamicProxy; public class MyInterceptor : IInterceptor { public object Intercept(InvocationInfo info) { return in…

MEFでAOP

過去に似たようなことをやった気がしますが、今回はMefContribを使った一応、正式っぽい方法で。 using System; using System.Linq; using System.Reflection; using System.ComponentModel.Composition; using System.ComponentModel.Composition.Primitive…

JetBrains.Annotations

ReSharperはコード分析してnull参照が発生する可能性があるところを指摘する機能があります。 このように該当箇所に波線が出て便利です。しかし、メソッドの戻り値がnullの場合は、残念ながらチェックされません。 ただ、この機能はカスタム属性が使われてい…

WebActivatorとPreApplicationStartMethodAttribute

MefContrib.MVC3によって生成された、AppStart_MefContribMVC3.csには、MEFを使用するための初期化コードがありますが、このコードは誰が呼び出しているのでしょうか? [assembly: WebActivator.PreApplicationStartMethod(typeof(TestMvcApplication.App_St…

ASP.NET MVC 3でMEFを使う

MefContrib.MVC3を使うと簡単にASP.NET MVCからMEFを使えるのでご紹介。前提:NuGetがインストール済みなこと。まず、ASP.NET MVC3のプロジェクトの用意しましょう。ASP.NET MVC3を選択。 面倒なのでデフォルト実装ありで。 では、MEFを使えるようにしましょ…