Autofac为我们提供了RegisterInstance和SingleInstance方法,它们使用的示例如下:
var instance = new MyInstance();
builder.RegisterInstance<IService>(instance);
builder.Register(c => instance).As<IService>().SingleInstance();
相同之处是它们都是单例模式,实例的初始化都是外面提供的。不同之处是Register.As.SingleInstance 同时注册了IService接口。
我们也可以使用Autofac内置提供的构造函数来初始化。如下:
builder.Register(typeof(MyInstance)).As<IService>().SingleInstance();
以上就是他们的区别,总的来说Autofac为我们提供的方式还是挺多样化的。