Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/rest/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# RESTful服务设计-单例服务?_C#_Rest - Fatal编程技术网

C# RESTful服务设计-单例服务?

C# RESTful服务设计-单例服务?,c#,rest,C#,Rest,我之前开发了一个公开一组RESTful服务的应用程序。我设计了完全无状态的业务逻辑实现类和相应的存储库类,每次有客户机请求时,它们都会被实例化。现在我正在开发另一个几乎没有RESTful服务的应用程序。在这种情况下,其中一个服务从其他外部服务获取数据,并需要将该数据缓存一段时间。我想在我的应用程序数据库中缓存这些数据,并通过创建一个新的业务类对象为每个请求提供这些数据。但在这里我有一个疑问-这是正确的设计吗?我是否应该将业务逻辑类设置为singleton并维护状态,即在内存中缓存数据 请分享你的

我之前开发了一个公开一组RESTful服务的应用程序。我设计了完全无状态的业务逻辑实现类和相应的存储库类,每次有客户机请求时,它们都会被实例化。现在我正在开发另一个几乎没有RESTful服务的应用程序。在这种情况下,其中一个服务从其他外部服务获取数据,并需要将该数据缓存一段时间。我想在我的应用程序数据库中缓存这些数据,并通过创建一个新的业务类对象为每个请求提供这些数据。但在这里我有一个疑问-这是正确的设计吗?我是否应该将业务逻辑类设置为singleton并维护状态,即在内存中缓存数据

请分享你的想法


谢谢

我会改用web服务器级缓存。在asp.net中,您可以使用由内存或您选择的外部缓存提供程序支持的缓存对象。

经过一些文献研究,我得出结论,使用单例类没有错。RESTful服务只是外部世界的资源接口,但它们的管理方式完全是内部的。我还意识到,不需要从接收请求并向数据库列发送响应的数据传输对象进行端到端的映射。我的DTO,在很多情况下,映射到映射到DB表的模型对象,但我也对这三个项进行了不同的设计。

首先为什么要将此信息缓存一段时间?@Sebas:我们不想频繁调用外部服务,因为我们知道生成该数据需要时间,而且我们的客户非常频繁地需要该信息。顺便说一句,如果你投了反对票,你能告诉我为什么吗?谢谢你的回复。我将使用OWIN作为Windows服务托管此服务,我对ASP.Net及其相关缓存对象是完全陌生的。所以,我不确定是否可以从ASP.Net使用缓存功能,但我会检查。在检查时,我遇到了。这看起来很有希望,但我的问题是我需要缓存响应的一部分,而不是整个响应。有什么建议吗?