私はXmlConfigurationを使用して自動ファクトリで工場クラスを登録する方法を探していましたが、ドキュメントは少しスリムに見えます。web.configを使用してAutofacの工場クラスを登録
を行うには私が達成したいです代わりに私の構成では、以下:
builder.Register(c => MyFactory.GetMyObject()).As<IMyObject>();
これを行うのいずれか良い方法はありますか?
私はXmlConfigurationを使用して自動ファクトリで工場クラスを登録する方法を探していましたが、ドキュメントは少しスリムに見えます。web.configを使用してAutofacの工場クラスを登録
を行うには私が達成したいです代わりに私の構成では、以下:
builder.Register(c => MyFactory.GetMyObject()).As<IMyObject>();
これを行うのいずれか良い方法はありますか?
これを行う方法は、XMLから登録できるAutofacモジュールに登録をカプセル化することです。 (モジュールは、ここで説明されていますhttp://code.google.com/p/autofac/wiki/StructuringWithModules)
あなたのモジュールのようなものになります。
public class MyModule : Module
{
protected override void Load(ContainerBuilder builder)
{
builder.Register(c => MyFactory.GetMyObject()).As<IMyObject>();
}
}
そして、それを登録するXMLを:
<module type="MyModule" />
Autofacは、もともとautowiredであってもコードから構成されるように作られました。
おそらくあなたが探しているものは、Spring.NETまたはCastleのようなものです。これらの2つのフレームワークは、もともとXMLから構成され、autowiredにさえ構築されていました。
複雑な依存関係をこのように扱う方が簡単だと思われるので、コードからの登録の処理にはweb.configを使用する利点があるようです。
すべての登録がGlobal.asaxで行われたという事実を私が見つけることができたときに唯一気にしていたことがありました。これは、別のアセンブリへの登録を中断することで修正するのは非常に簡単です。