2011-07-24 23 views
0

这是我的场景:我有一个静态对象,它将连接到并发许可证服务以获取许可证。我将在我的WCF服务中的一些非静态方法上需要此许可证。什么时候WCF服务器中的静态对象被丢弃?

这里的问题是,我知道这个静态对象将保留在周围,只要该对象正在使用,许可证将被保留。但是我还需要在通过调用并发许可证服务的释放方法处理静态对象之前释放此许可证。

如果我不释放在静态对象持有的牌照,并发许可服务会拒绝一些空闲时间,我无法控制后,再次予以换发...

现在问题来了。有没有在WCF服务器端的事件,让我知道IIS或任何即将处置或回收静态对象,所以我可以释放许可证的并发许可证服务之前,其处置或回收?

我在处理这个静态对象时应该记住什么?我应该使用Lock()还是Using()

换句话说,有没有办法使这种情况下的静态析构函数?这个析构函数应该很可能被IIS调用。

回答

0

你可以通过移动到一个单例模式来解决你的问题,其中单个实例是一个独立的实例。

相关问题