使用OWIN在解决方案中从WPF项目启动asp.net WebApi项目

3
我有一个.NET解决方案,其中包含两个项目:
  1. WPF项目:用于WPF应用程序
  2. 带有几个控制器的ASP.NET WebApi项目
我想在我的WPF应用程序内托管WebApi(使用OWIN)。你知道如何做吗?
如果我在WPF项目本身中创建控制器,则可以使用WebApp.Start(并传递配置类)来托管它们。
2个回答

1

我已经尝试过这样做,并且它是有效的,如果控制器和WebApi配置在同一个项目(命名空间)中。现在,我有一个单独的项目用于WebApi(它有自己的WebApiConfig和RouteConfig)。现在当我在MapHttpRoute方法中指定路由时,我如何告诉它控制器在不同的项目中? config.Routes.MapHttpRoute( name: "DefaultApi", routeTemplate: "api/{controller}/{id}"); - Sourabh86
对于路由,我建议使用WebAPI路由属性,这会使您的生活变得更加轻松,而不是使用路由配置文件。您可以在此处查看示例:http://www.asp.net/web-api/overview/web-api-routing-and-actions/attribute-routing-in-web-api-2 - Vnvizitiu

0

是的。开始阅读文档。然后“就这样去做”。这(自托管)正是 OWIN 设计的目的,而且所有内容都有文档记录。

在您的应用程序中,您将在某个时候配置并启动基于 OWIN 的服务器。与您通常处理 Web 应用程序的方式相反,您可以放弃 WebApi 项目 - 所有控制器等都可以存在于一个程序集中。使用反射来查找它们。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接