2012-12-03 36 views
4

使用AutoFac時,您可以使用.RegisterType將類與接口相關聯,但您也可以使用.Register(它允許您通過lambda指定構造函數參數)。.Register和.RegisterType是否等價(對於具有無參數構造函數的類)?

對於具有無參數構造函數的類,這兩個方法是否等價?

var builder = new Autofac.ContainerBuilder(); 

builder.RegisterType<MyClass>().As<IMyInterface>(); 
builder.Register(x => new MyClass()).As<IMyInterface>(); 

有什麼方案可以使用.RegisterType是最好的嗎?

+0

註冊和registertype Autofac區別http://stackoverflow.com/questions/7984426/autofac-difference-between-register-and-registertype – lex87

+0

@ Alexandru-DanMaftei謝謝,但這個問題是不同的我的。 –

回答

6

假設你的類只有一個定義的構造函數,它們應該在功能上是等價的。

一個內部差異是RegisterType將使用反射來確定使用構造函數,而Register與lambda已提供所需的所有信息。

相關問題