【问题标题】:How to use Simple Injector with svc-less service implementations如何将 Simple Injector 与 svc-less 服务实现一起使用
【发布时间】:2019-02-24 01:50:24
【问题描述】:

由于似乎更好的装饰器支持,我正在考虑从 Autofac 切换到 Simple Injector。但是我非常喜欢您使用 Autofac 注册和托管 svc-less WCF 服务的方式,但我找不到使用 Simpleinjector 的方法。

例如,使用 Autofac,它的工作方式如下(在 Application_Start 中):

在容器构建期间:

builder.RegisterType<SomeService>().As<ISomeService>();

容器构建完成后:

RouteTable.Routes.Add(
    new ServiceRoute("", new AutofacServiceHostFactory(), typeof(ISomeService)))

请注意 ServiceRoute 中的空字符串 routePrefix,以便在 url 中没有实际服务名称的情况下实现休息式服务端点。

Simple Injector 中是否有与此等价的功能?

【问题讨论】:

  • 你尝试了什么?
  • 你试过打电话RouteTable.Routes.Add(new ServiceRoute("", new SimpleInjectorServiceHostFactory(), typeof(ISomeService)))吗?那样有用吗?如果没有,会发生什么?请描述为什么这不起作用?
  • @Steven 谢谢,这看起来很有希望。不知道 SimpleInjector 库中的那个类。一有机会就试试看。
  • 好吧,如果您阅读integration guide :) 就很难错过。
  • 谢谢@Steven。当然,它就像一个魅力。我会将您的评论标记为答案,但我是 Stack Overflow 的新手,我不知道该怎么做...

标签: c# wcf autofac simple-injector


【解决方案1】:

只需使用:

SimpleInjectorServiceHostFactory.SetContainer(container);

RouteTable.Routes.Add(
    new ServiceRoute("", 
        new SimpleInjectorServiceHostFactory(),
        typeof(ISomeService)));

【讨论】:

    猜你喜欢
    • 2014-08-22
    • 1970-01-01
    • 1970-01-01
    • 2018-05-08
    • 2016-07-04
    • 1970-01-01
    • 2015-07-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多