【发布时间】:2010-03-16 21:25:01
【问题描述】:
我正在努力让 IOC 在远程场景中工作。我将我的应用程序服务器设置为发布通过 XML 配置的服务 (SingleCall)。
众所周知,它的工作原理是这样的:
RemotingConfiguration.Configure(ConfigFile, true);
假设我的服务看起来像那样(伪代码)
public class TourService : ITourService
{
IRepository _repository;
public TourService()
{
_repository = new SqlServerRepository();
}
}
但我更想确定的是:
public class TourService : ITourService
{
IRepository _repository;
public TourService(IRepository repository)
{
_repository = repository;
}
}
在客户端我们做类似的事情(又是伪代码):
(ITourService)Activator.GetObject(ITourService, tcp://server/uri);
这会提示服务器创建我的 TourService 类的新实例...
但这似乎效果不佳,因为 .NET Remoting Infrastructure 希望知道它应该发布的 type,但我更愿意指出它如何检索object 它应该发布。换句话说,通过 IOC 流程管道(例如温莎城堡)进行路由。
目前我对那个任务有点迷失......
【问题讨论】:
标签: .net inversion-of-control remoting castle-windsor