プロジェクトのDIコンテナを調査します。現在、Autofac と Castle Windsor のどちらかを選択しています。私たちにとって非常に重要なことがあります: Autofac の強力な型登録です。
例:
public interface ITestAutofac
{
}
public class NotDerivedFrom
{
}
ウィンザーについては、次のように書くことができます -
var cont = new WindsorContainer();
cont.Register(Component
.For<ITestAutofac>().ImplementedBy<NotDerivedFrom>());
そして、コンパイル時までに失敗します。Resharper はこれに簡単に役立ちます。
Autofac の場合、次のように書くことができます -
builder.Register(c => new NotDerivedFrom()).As<ITestAutofac>();
var form = container.Resolve<ICustomForm>();
そして、実行時に失敗します。
コンパイル時のチェックを使用して Autofac に型を登録するにはどうすればよいですか?