在.NET中放置HttpHandler类的位置?

时间:2009-11-17 13:39:41

标签: .net architecture httphandler

也许是一个奇怪的问题,但是你会在哪里将HttpHandler类放在n层架构中?我有一个服务层,一个域模型层和一个数据层。我应该为HttpHandlers创建一个单独的类库吗?

3 个答案:

答案 0 :(得分:3)

我的观点:我会将它们放在服务层中,也许是在该项目的子文件夹中。

答案 1 :(得分:2)

这些是我的偏好:

如您所述,您正在重复使用IHttpHandler跨网站,因此它自己的独立库将成为我首选的项目。

当然,如果它是图书馆中唯一的一个类,那就完全矫枉过正了。您还说它需要访问您的域和数据。您可以将这些保留在内部并使用:

[assembly: InternalsVisibleTo("MyHandlerLibrary")]

这可以在您的域库的Assemblyinfo.cs文件中(或者您存储程序集信息的任何位置)。

尽管如此,我不想成为一名建筑宇航员。如果您知道您的处理程序不适合全球统治,请乐意将其粘贴在服务类库中。

答案 2 :(得分:1)

HTTP处理程序是技术 - 它们可用于在任何地方公开接口(各种类型)。重要的问题是服务的目的是什么?它们是“技术”服务还是“商业”服务?

如果你能回答这些问题,你就会更接近他们需要去的地方。

记住它们作为基于Web的应用程序(或组件)的一部分公开也很重要;如果你想在网上公开一些东西,那么它们可能是个不错的选择。 因此,如果您想通过Web公开您的数据访问,那么您可以使用HTTP处理程序。

你应该重建一个单独的图书馆吗?如果HTTP处理程序公开的接口是通用的(比如日志记录)那么你可以,虽然你更有可能在库中有一些'helper'方法,并且你的'服务'特定的HTTP处理程序将是你需要它们的地方。