2012-01-03 110 views
1

第三方应用程序我需要编写Com服务器。这不是问题,但我需要COM服务器只在一个实例中运行。这个实例应该作为一个服务来运行,这样它就不会在每次新建时创建。COM服务器只有一个运行实例(Service,Singleton,...)

COM应用程序由vbs每次创建时创建。

Dim myCom 
Set myCom = Nothing             
Set myCom = CreateObject("MyCom.Application") 
myCom.DoAction 

Com服务器本身创建一个数据库连接,我想连接一次而不是每次创建。

我希望你明白我的意思。如果没有通过评论与我联系。谢谢。

克里斯

+0

如果你的意思是“我想多个MyCom.Application”但只有一个DatabaseConnection存在 - 那么试试这个:创建一个具有静态构造函数的静态类。在ctor中创建一个DatabaseConnection的实例。对于任何/所有MyCom.Application实例,您可以调用静态类来访问它的单个数据库连接。注意:这真的是你想要的行为吗?那么所有用户都会一直使用相同的连接?如果是这样,那么你几乎肯定会想要实现一个锁/池/队列系统,以便用户在使用之前等待连接释放? – BlueChippy 2012-01-03 09:06:10

回答

1

ExeCOMServer看看:

ExeCOMServer封装工艺外的一个COM服务器的骨架
C#。该类实现了单例设计模式,并且它是线程安全的。 要启动服务器,请调用CSExeCOMServer.Instance.Run()。如果服务器运行的是 ,则该函数将直接返回。

相关问题