因此,我有一个带有常规Controllers的AngularJs /
MVC项目,并决定将其移至SPA应用程序并添加WebApi2以将数据传递回我的UI,而不是使用MVC。
在我的Global.asax中,我的MVC项目具有以下内容:
DependencyResolver.SetResolver(new
StructureMapDependencyResolver(container));
我的WebApiController有一个带有IRepository的构造函数,用于与数据库对话并获取一些实体。当我的AngularJS
Web应用程序调用控制器时,断点从未命中,并且我收到的服务器500错误返回的信息很少。
Public class MyController : ApiController
{
public MyController (IThingRepository thingrepository)
{
....
}
}
我开始看到如下错误:
“ ExceptionType”:“ System.ArgumentException”,“
Message”:“类型’MyProject.Web.Controllers.MyController’没有默认的构造函数”
我不想添加默认构造函数。为什么会得到这个,如何解决?
发生这种情况是因为依赖关系解析不适用于WebApi控制器。StructureMap找不到构造函数,也无法解析IThingRepository。
WebApi和MVC的工作方式不同,并且依赖性解析机制略有不同。Global.asax代码“
DependencyResolver.SetResolver”适用于MVC,但不适用于WebAPi。那么我们如何使它工作呢?
安装包StructureMap.MVC5
public class StructureMapDependencyResolver : StructureMapDependencyScope, IDependencyResolver
{
public StructureMapDependencyResolver(IContainer container) : base(container)
{
}
public IDependencyScope BeginScope()
{
IContainer child = this.Container.GetNestedContainer();
return new StructureMapDependencyResolver(child);
}
}
//StructureMap Container
IContainer container = IoC.Initialize();
//Register for MVC
DependencyResolver.SetResolver(new StructureMapDependencyResolver(container));
//Register for Web API
GlobalConfiguration.Configuration.DependencyResolver = new StructureMapDependencyResolver(container);
有关正在发生的事情的完整说明,请查看有关ASP.NET MVC 4,Web
API和StructureMap的博客文章。
问题内容: 我想使用查询字符串成功登录后将用户重定向到另一个页面。如果我复制并粘贴到浏览器的地址栏中,则可以正常工作。但是如果我用 网址看起来像 如何将%3F解码为“?” ?谢谢 问题答案: 它应该是
问题内容: 我正在尝试使SystemJS与Typescript一起使用,但是它们似乎彼此冲突。 我如何利用System.js的自动加载功能而不会与Typescript上的关键字发生冲突?使用import / require可以使Typescript使用它自己的方式来加载和引用文件,尽管它转换为,但对于 是否有可能完全做到这一点,否则我将不得不等待Typescript支持ES6关键字? 问题答案:
编辑:TL;DR 是否有人在angularjs中使用Magento Rest API,并能给我一些关于如何开始使用OAuth的提示? 我正在尝试使用magento Rest API和angularjs。我的问题是我甚至没有让启动endpoint工作。 要计算我使用https://github.com/bettiolo/oauth-signature-js签名: 我尝试了两种不同的方法: 1:使用授
问题内容: 我有一个带有jquery和bootstrap的现有PHP项目,没有使用任何前端框架。 我正在尝试使用webpack模块捆绑器来为我的项目资源创建单个入口点,使用节点js包管理器管理js依赖项,以缩小js css的方式运行任务,调整图像大小等。并缩短了加载单个页面所需的浏览器加载时间。 我遇到了webpack教程,必须安装并安装它的dev-server,但是问题是我无法理解如何转换项目中
如何管理处理相同数据库模式的多个项目。如果被另一个项目修改,每个项目中的Flyway迁移脚本不允许启动。 例如: 我有一个带有FlywayInitializer类的spring boot项目X。 我有一个子模块Y,还有他自己的FlywayInitializer类 项目结构: 如何对项目X和Y使用与Flyway相同的schemaname“schema1”? 编辑:谢谢@jesper\u bk对我的帮
问题内容: 我正在设置信用卡处理程序,需要对CURL使用替代方法。当我使用测试服务器(未调用SSL URL)时,以下代码运行良好,但是现在当我在使用HTTPS的工作服务器上对其进行测试时,它失败,并显示错误消息“无法打开流”。 问题答案: 请尝试以下脚本,以查看您的php脚本是否有https包装器。 输出应该是这样的