以下是该方案:
我有一个nopCommerce MVC网站 - 我需要"打开"此站点中的数据通过Web服务提供给其他站点。我对MVC顺便说一句。
我的计划是在nopCommerce网站的同一解决方案中创建一个webApi项目并引用它。然后,在webAPI控制器中访问nopCommerce控制器,例如
var product = Nop.Web.Controllers.CatalogueController.GetProduct(id);
我无法做到这一点,因为我必须实例化一个CatalogController对象 - 我开始创建对象,但是需要传递它以实例化它 - 几十个服务,所以这个部分已经抛弃了我 - 我不确定这些控制器是如何在"标准中创建的?#34; MVC项目 - 我无法在任何地方找到它,所以我认为它在某个地方的引擎盖下......?
我的问题 - 是否有可能做我想做的事情 - 目的是不重复nopCommerce项目中的代码 - 我只想保留该项目并使用其中已有的功能通过从Web服务调用它们 - 也许我对如何做它的想法有缺陷/不可能?你能建议其他方法吗?或解释我如何创建控制器?
答案 0 :(得分:1)
虽然可以这样做,但绝对不是推荐的方法。在传统的场景中,我建议将代码从您想要重用的MVC操作移动到MVC和Web Api项目可以共享的类库中。但是,鉴于您在这里处理第三方解决方案nopCommerce,我不确定您实际可以使用多少代码进行随机播放。我不熟悉nopCommerce,但如果您有权访问任何底层API,例如它提供的存储库或服务类,我建议让您的Web Api直接利用这些而不是控制器操作