C# 使用MVC控制器从Windows通信基础(WCF)中保存数据

C# 使用MVC控制器从Windows通信基础(WCF)中保存数据,c#,asp.net-mvc,wcf,model-view-controller,C#,Asp.net Mvc,Wcf,Model View Controller,我在C#中开发了一个MVC应用程序。现在,我需要为其他内部系统和稍后的其他外部系统公开Web服务(API)以调用API 我已经在与MVC应用程序相同的解决方案中实施了一个新的WCF项目。从WCF Web服务获取示例请求和响应没有问题 我想遵循的解决方案是对所有源使用相同的业务逻辑层。业务逻辑层目前位于MVC应用程序中,并且在ModelState上具有适当的地位,以使用实体框架验证并最终保存新的/修改的记录 由于这种对ModelState的依赖,我不能在没有ModelState的情况下简单地调用服

我在C#中开发了一个MVC应用程序。现在,我需要为其他内部系统和稍后的其他外部系统公开Web服务(API)以调用API

我已经在与MVC应用程序相同的解决方案中实施了一个新的WCF项目。从WCF Web服务获取示例请求和响应没有问题

我想遵循的解决方案是对所有源使用相同的业务逻辑层。业务逻辑层目前位于MVC应用程序中,并且在ModelState上具有适当的地位,以使用实体框架验证并最终保存新的/修改的记录

由于这种对ModelState的依赖,我不能在没有ModelState的情况下简单地调用服务层,ModelState当然属于MVC

我创建了一个MVC控制器,它将充当业务层和WCF层之间的网关。无论我做什么,都不能直接在控制器中调用操作。控制器继承自控制器类,该类似乎保护了控制器,因为无法将其实例化为来自WCF层的对象

我试过:

    APITransactionController controller = new APITransactionController();
我得到一个错误,我无法绕过:

Error   CS0122  'APITransactionController.APITransactionController()' is inaccessible due to its protection level
还尝试:

var controller = DependencyResolver.Current.GetService<APITransactionController>();
var controller=DependencyResolver.Current.GetService();
但是变量控制器返回null

你知道我该怎么做吗? 还有其他建议吗?也许我走错了方向……

检查:


  • 它是否定义为公共类APITransactionController
  • 它有公共构造函数吗
是否定义为公共类APITransactionController?使用公共构造函数?构造函数是私有的。让我把它公之于众,然后再试一次……这就是问题所在。谢谢你,伙计,太好了!我被添加为一个答案