也许是一个奇怪的问题,但是你会在哪里将HttpHandler类放在n层架构中?我有一个服务层,一个域模型层和一个数据层。我应该为HttpHandlers创建一个单独的类库吗?
答案 0 :(得分:3)
我的观点:我会将它们放在服务层中,也许是在该项目的子文件夹中。
答案 1 :(得分:2)
这些是我的偏好:
如您所述,您正在重复使用IHttpHandler
跨网站,因此它自己的独立库将成为我首选的项目。
当然,如果它是图书馆中唯一的一个类,那就完全矫枉过正了。您还说它需要访问您的域和数据。您可以将这些保留在内部并使用:
[assembly: InternalsVisibleTo("MyHandlerLibrary")]
这可以在您的域库的Assemblyinfo.cs文件中(或者您存储程序集信息的任何位置)。
尽管如此,我不想成为一名建筑宇航员。如果您知道您的处理程序不适合全球统治,请乐意将其粘贴在服务类库中。
答案 2 :(得分:1)
HTTP处理程序是技术 - 它们可用于在任何地方公开接口(各种类型)。重要的问题是服务的目的是什么?它们是“技术”服务还是“商业”服务?
如果你能回答这些问题,你就会更接近他们需要去的地方。
记住它们作为基于Web的应用程序(或组件)的一部分公开也很重要;如果你想在网上公开一些东西,那么它们可能是个不错的选择。 因此,如果您想通过Web公开您的数据访问,那么您可以使用HTTP处理程序。
你应该重建一个单独的图书馆吗?如果HTTP处理程序公开的接口是通用的(比如日志记录)那么你可以,虽然你更有可能在库中有一些'helper'方法,并且你的'服务'特定的HTTP处理程序将是你需要它们的地方。