.net WCF仿真应用

.net WCF仿真应用,.net,wcf,.net,Wcf,在我的代码中,我检查文件是否存在,并将其存储在asp.net中的应用程序对象中 稍后,我访问这个布尔值以在我的web服务中执行某些操作 现在我想在wcf中重写我的web服务,这里的情况有所不同。应用程序对象不存在 完成此任务的最佳方法是什么: 网站应用程序启动记录为布尔值。 将它传递给我的wcf,以便它在调用函数时知道它(布尔值不是方法参数的一部分)最后一篇文章提供了一个在调用之间共享状态的选项: 系统的静态类始终存在 应用程序的生存期。他们是 在WCF中用于维护状态 因为他们不会被重新检查 每

在我的代码中,我检查文件是否存在,并将其存储在asp.net中的应用程序对象中

稍后,我访问这个布尔值以在我的web服务中执行某些操作

现在我想在wcf中重写我的web服务,这里的情况有所不同。应用程序对象不存在

完成此任务的最佳方法是什么: 网站应用程序启动记录为布尔值。 将它传递给我的wcf,以便它在调用函数时知道它(布尔值不是方法参数的一部分)

最后一篇文章提供了一个在调用之间共享状态的选项:

系统的静态类始终存在 应用程序的生存期。他们是 在WCF中用于维护状态 因为他们不会被重新检查 每次呼叫或新WCF时 连接已建立


很多人没有意识到WCF支持依赖注入(DI)模式,比如构造函数注入,而不会带来太多麻烦

定义一个封装您想要知道的知识(布尔值)的类,并将该类的实例注入到您的WCF服务中,并询问该类的值(以及您想要知道的任何其他内容)

如果将注入的类定义为长期对象(通常称为单例对象,但不要与单例设计模式混淆),则可以不断询问它的值,每次都会得到相同的答案


在许多其他内容中,描述了当WCF服务实现没有默认构造函数时如何将依赖项注入WCF服务实现。

ASP.NET中的应用程序对象主要是为了与经典ASP应用程序向后兼容

它本质上是一个静态的
字典
,具有与经典ASP兼容的锁定语义


通过将应用程序范围的状态存储在任何合适的静态字段中,并在需要时提供自己的锁定,您可以轻松地替换它。那么,如果您是以ASP.NET应用程序、WCF应用程序或其他方式运行,您就不必担心了。

所有编程语言都应该禁止使用静态。请注意。像所有的锤子一样,使用静态功能,你可以建造一座房子,也可以砸碎你的拇指。