我正在尝试使用 XSockets 来实现服务器,并且我想使用 DI 抽象 DB 层。
这就是我所拥有的:
public class FooController : XSocketController
{
// constructor
public FooController()
{
// initialize some data here
}
//... rest of class
}
这就是我想要的(为了能够在用作服务器的控制器上使用一些 DI):
public class FooController : XSocketController
{
private IBar _myBar;
// constructor
public FooController(IBar BarImplementation)
{
// ...
_myBar = BarImplementation;
}
//...
}
问题是:我自己实际上并没有创建 FooController,当一些客户端尝试连接到它时,它会被调用。
这是启动服务器的典型用法:
_serverContainer = Composable.GetExport<IXSocketServerContainer>();
_serverContainer.StartServers();
// Write info for each server found.
foreach (var server in _serverContainer.Servers)
{
Console.WriteLine(server.ConfigurationSetting.Endpoint);
Console.WriteLine( "Allowed Connections (0 = infinite): {0}",
server.ConfigurationSetting.NumberOfAllowedConections);
}
如果我没记错的话(我很可能是这样),当客户端尝试连接时,他会获得自己的私有控制器作为服务器。
关于如何解决这个问题的任何想法?