CaliburnMicro - 调用解析方法

时间:2013-10-16 07:39:44

标签: wcf caliburn.micro

我在WPF应用程序上使用caliburnMicro。

除了作为UI应用程序之外,它还是Inter Process通信服务器(我们在命名管道上使用WCF。)

每个服务主机都注册为singleton(container.RegisterSingleton(typeof (IMyServiceHost), null, typeof (MyServiceHost));)。

IMyserviceHost的每个实现都包含WCF ServiceHost属性。

在当前状态下,每个服务主机对象请求必须在解析对象后在代码中打开通道。 我希望每个服务主机请求解析将触发Open()属性的ServiceHost以打开服务器端通道(这是来自IPC服务器端)。

是否可以使用现有的Caliburn Micro方法?

注册码:

container.RegisterSingleton(typeof (IMyServiceHost), null, typeof (MyServiceHost));

然后解决代码:

//Resolve the object
var serviceHost = IoC.Get<IMyServiceHost>();
//Then open the channel
serviceHost.Instance.Open();

1 个答案:

答案 0 :(得分:1)

SimpleContainer文档中查看处理程序注册。这允许您注册一个函数。基本上你可以注册这样的东西:

() => {
   var serviceHost = IoC.Get<IMyServiceHost>();
   serviceHost.Instance.Open();
   return serviceHost;
}

这假设您已经以正常方式添加了IMyServiceHost,这样我们可以通过激活或不激活来请求它。

另一种选择是全球化。在同一文档的高级功能中,您可以设置一个全局激活挂钩,可以对任何对象进行高级初始化,只需进行类型检查,如果是IMyServiceHost,则在返回对象之前调用所需的方法。 / p>