相关疑难解决方法(0)

Autofac将数据注入OWIN Startup类

我一直在寻找SO一段时间,但找不到我特定问题的答案:

如何使用Autofac将数据(通过构造函数或属性)注入到OWIN Startup类中?

我在Windows服务中使用Autofac,它也处理后端服务的创建等.所以我在那里进行所有配置读取和容器构建.

我希望能够注册Startup类,这样我就可以为CORS注入允许的原点,但即使我用这样的属性注册对象:

var builder = new ContainerBuilder();
// This will actually be read from config.
var origins = new[]
              {
                  "http://localhost",
                  "http://localhost:8082",
              };
builder.Register(c => new Startup(origins));
var container = builder.Build();
Run Code Online (Sandbox Code Playgroud)

在运行时,实例化Startup类时,callstack显示它来自外部代码,而我的Autofac构建器没有推送该属性.

理想情况下,我希望将Autofac注册保存在一个地方(Windows服务类),然后将所需数据注入Startup,这样我就可以执行以下操作(将allowedOrigins其设置为属性或通过构造函数注入)

 public void Configuration(IAppBuilder app)
 {
     var configuration = new HttpConfiguration();
     ...
     var origins = string.Join(",", allowedOrigins);
     var cors = new EnableCorsAttribute(origins, "*", "*") { SupportsCredentials = true };
     configuration.EnableCors(cors);
     ....
 }
Run Code Online (Sandbox Code Playgroud)

任何想法将不胜感激.谢谢

peteski

UPDATE

我应该补充一点,在尝试Autofac注册和构建之后,我开始执行以下操作来启动OWIN自我主机应用程序:

var webApp = WebApp.Start<Startup>(baseAddress);
Run Code Online (Sandbox Code Playgroud)

通过与朋友的对话,他们建议创建Startup对象并将其传递给 …

c# dependency-injection autofac owin asp.net-web-api2

0
推荐指数
1
解决办法
1711
查看次数