我正在考虑从Autofac切换到Simple Injector,因为看似更好的装饰器支持。但是我非常喜欢你用Autofac注册和托管无svc的WCF服务的方式,我找不到用Simpleinjector做到这一点的方法。
例如,使用Autofac它就像这样(在Application_Start中):
在容器构建期间:
builder.RegisterType<SomeService>().As<ISomeService>();
容器构建完成后:
RouteTable.Routes.Add(
new ServiceRoute("", new AutofacServiceHostFactory(), typeof(ISomeService)))
请注意ServiceRoute
中的空字符串routePrefix,以便在url中实现没有实际服务名称的休息样式服务端点。
Simple Injector中是否有相同的功能?
只需使用:
SimpleInjectorServiceHostFactory.SetContainer(container);
RouteTable.Routes.Add(
new ServiceRoute("",
new SimpleInjectorServiceHostFactory(),
typeof(ISomeService)));