我的场景是这样的:
在服务器上有一个应用程序,它公开了一个允许与programaticaly交互的COM对象。但是,由于许可限制,我只能通过COM连接一次。因此,在初始化之后,COM对象将返回一个更具指定的ConnectionObject。
我需要建议我为我的服务选择的管理模型,它将与ConnectionObject进行交互:
每次通话服务:
我有两个选择:
我可以通过COM登录,执行操作和Logout释放连接。但是这个日志记录过程有点耗时。
我可以创造某种形式 单身类可以保持 对ConnectionObject的引用。 问题是我不知道 如何共享同一个实例 对象通过不同的实例 服务?有可能吗?
单身人士服务:
共享ConnectionObject的问题不存在。对象将在服务生命的开始时创建,并在服务关闭时释放。但是我已经读过,不建议使用这种服务。
感谢您的任何建议。
答案 0 :(得分:1)
鉴于您对COM对象的要求,以及耗时的登录和退出过程 - 我会使用单件服务。我们一直使用这样的WCF服务(也与legagy COM对象交谈)。
您可以将以下属性添加到WCF服务的类定义中以获取行为:
[ServiceBehavior(InstanceContextMode = InstanceContextMode.Single)]
public class MyService : IMyServiceContract
{
[OperationBehavior]
public void MyServiceCall ()