【发布时间】:2012-02-25 11:49:50
【问题描述】:
我有一个运行与 ASP.NET 兼容的 WCF 服务。
这个服务应该是只读的并且是使用网络脚本工厂创建的。
我想从代码中的任何地方(不同的页面......等)获取单例实例,如果没有创建它应该创建它,但如果第一次直接访问它不应该创建另一个单例实例如果有一个已经从代码中的某处创建的。基本上,我想要一个经典的单例,但不使用静态,服务的创建应该是工厂的工作。
【问题讨论】:
我有一个运行与 ASP.NET 兼容的 WCF 服务。
这个服务应该是只读的并且是使用网络脚本工厂创建的。
我想从代码中的任何地方(不同的页面......等)获取单例实例,如果没有创建它应该创建它,但如果第一次直接访问它不应该创建另一个单例实例如果有一个已经从代码中的某处创建的。基本上,我想要一个经典的单例,但不使用静态,服务的创建应该是工厂的工作。
【问题讨论】:
您可以使用 wcf 服务上的属性来执行此操作:
[ServiceBehavior(InstanceContextMode = InstanceContextMode.Single)]
class MySingleton : ...
{...}
这样,您的 WCF 服务就有一个实例,供所有调用者使用。
【讨论】: