对控制台应用程序使用 Microsoft.AspNet.Mvc

Use Microsoft.AspNet.Mvc for Console applications

我正在编写一个我想应用 MVC 模式的控制台应用程序。由于ASP.net MVC已经是一个成熟的框架,我想知道我是否可以将它用于我的控制台应用程序而不是重新发明轮子。

例如,我可以从 Microsoft.AspNet.Mvc.Controller 继承来派生我自己的控制器 class 吗?

我已经对 Google 进行了一些研究,但找不到任何关于这个问题的具体信息。

I'm writing a console application which I'd like to apply MVC pattern. Since ASP.net MVC is already a mature framework, I wonder if I can use it for my console application instead of reinventing the wheel.

不,你不想。 ASP.NET MVC 专为 Web 和 HTTP 协议而设计。

For instance, can i inherit from Microsoft.AspNet.Mvc.Controller to derive my own controller class?

您可以继承,但是为它编写一个托管环境来模拟它设计的 HTTP 世界将是一个完全矫枉过正的做法。

编写 ASP.NET MVC 控制台应用程序意味着您正在执行 self-host 而不是将其托管在像 IIS 这样的 Web 服务器中。这是可能的,但它是 non-trivial。有几种选择:

  1. Create MVC 6 application and use dnx to self-host
  2. 利用 IIS 7 Hostable Web Core 以防您的应用程序只能在 Windows Vista+
  3. 上运行
  4. NancyFx或类似框架
  5. 编写

编辑: 显然我误解了这个问题:不,除了通过 http 工作的 Web 应用程序之外,在其他情况下使用 MVC 框架没有意义。但我会留下这个答案,以防有人在搜索时打开这个我认为这个问题是关于。