小编iti*_*tim的帖子

OWIN + SignalR + Autofac

摘自:http://docs.autofac.org/en/latest/integration/signalr.html:

"OWIN集成中的常见错误是使用GlobalHost.在OWIN中,您可以从头开始创建配置.在使用OWIN集成时,不应该在任何地方引用GlobalHost."

这听起来很合理.但是,如何IHubContext通过ApiController解析,就像通常的(非OWIN):

GlobalHost.ConnectionManager.GetHubContext<MyHub>()

我无法在任何地方找到这个参考,我现在唯一的方法是HubConfiguration在同一个容器中注册实例并执行此操作:

public MyApiController : ApiController {
  public HubConfiguration HubConfig { get; set; } // Dependency injected by
                                                  // PropertiesAutowired()

  public IHubContext MyHubContext { 
    get { 
      return HubConfig
        .Resolver
        .Resolve<IConnectionManager>()
        .GetHubContext<MyHub>(); 
     } 
  }

  // ...

}
Run Code Online (Sandbox Code Playgroud)

但是,这对我来说似乎相当冗长.这样做的正确方法是什么?更具体一点,是否有一种干净的注册方式IConnectionManager

编辑:

我最终做的是:

var container = builder.Build();
hubConfig.Resolver = new AutofacDependencyResolver(container); 

app.MapSignalR("/signalr", hubConfig);

var builder2 = new ContainerBuilder();
builder2
  .Register(ctx => hubConfig.Resolver.Resolve<IConnectionManager>())
  .As<IConnectionManager>();

builder2.Update(container);
Run Code Online (Sandbox Code Playgroud)

但我觉得必须有一种更简单的方法来IConnectionManager注入控制器.

c# autofac signalr owin

14
推荐指数
2
解决办法
4694
查看次数

基于视图的iOS应用程序模板

我已经阅读了Apple的"你的第一个iOS应用程序"指南,对我来说,一切都很清楚.但是,当我试图理解XCode中提供的基于视图的iOS应用程序模板如何工作时,我遇到了一些有趣的难题.

我知道应用程序获取主要的nib文件名(通常是MainWindow.xib)形成*-Info.plist文件.我不明白的是,XCode如何知道哪个nib文件与默认情况下使用此基于View的应用程序模板创建的控制器相关联.在本指南中,您将从基于Window的应用程序开始,并且"必须编写"类似于:

MyViewController *aViewController = [[MyViewController alloc]
initWithNibName:@"MyViewController" bundle:[NSBundle mainBundle]];

[self setMyViewController:aViewController];
Run Code Online (Sandbox Code Playgroud)

这很有道理.然而,事实证明,在基于视图的iOS应用程序模板中没有这样的东西,并且首先实际上并不需要这个nib规范,只要您创建了带有选项"With XIB for user interface"的UIViewController子类"检查.我的问题是,XCode如何知道哪个nib与此控制器相关联,即它是将此连接存储在某些文件中,还是通过某种约定(控制器和nib文件的名称可能相同)?此外,'加载来自MyViewBasedAppController''副标题来自于MainWindow.xib中接口构建器的控制器视图?当我手动添加控制器时,它绝对不存在,所以我很好奇XCode在我背后做了什么魔术,当我想我的时候

iphone xcode interface-builder ios xcode-template

4
推荐指数
1
解决办法
1899
查看次数

标签 统计

autofac ×1

c# ×1

interface-builder ×1

ios ×1

iphone ×1

owin ×1

signalr ×1

xcode ×1

xcode-template ×1