- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这是 asp.net mvc3。
当我尝试转到主页/索引操作时:
public class HomeController : Controller
{
private IBar bar;
public HomeController(IBar bar)
{
this.bar = bar;
}
//
// GET: /Home/
public ActionResult Index()
{
ViewBag.Message = "hello world yo: " + bar.SayHi();
return View();
}
}
public interface IBar
{
string SayHi();
}
public class Bar : IBar
{
public string SayHi()
{
return "Hello from BarImpl!";
}
}
我得到错误:
System.NullReferenceException: Object reference not set to an instance of an object.
public IController Create(RequestContext requestContext, Type controllerType)
Line 98: {
Line 99: return container.GetInstance(controllerType) as IController;
Line 100:
Line 101: }
我是否必须以某种方式手动连接每个 Controller 类?
我的 global.asax.cs 有:
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
RegisterGlobalFilters(GlobalFilters.Filters);
RegisterRoutes(RouteTable.Routes);
IContainer container = new Container(
x =>
{
x.Scan(s =>
{
s.AssembliesFromApplicationBaseDirectory();
s.WithDefaultConventions();
s.LookForRegistries();
}
);
x.For<IControllerActivator>().Use<StructureMapControllerActivator>();
x.For<IBar>().Use<Bar>();
}
);
DependencyResolver.SetResolver(new StructuredMapDependencyResolver(container));
}
还有我的结构化 map 相关类:
public class StructuredMapDependencyResolver : IDependencyResolver
{
private IContainer container;
public StructuredMapDependencyResolver(IContainer container)
{
this.container = container;
}
public object GetService(Type serviceType)
{
if (serviceType.IsAbstract || serviceType.IsInterface)
{
return container.TryGetInstance(serviceType);
}
return container.GetInstance(serviceType);
}
public IEnumerable<object> GetServices(Type servicesType)
{
//return container.GetAllInstances(servicesType) as IEnumerable<object>;
return container.GetAllInstances<object>()
.Where(s => s.GetType() == servicesType);
}
}
public class StructureMapControllerActivator : IControllerActivator
{
private IContainer container;
public StructureMapControllerActivator(IContainer container)
{
container = container;
}
public IController Create(RequestContext requestContext, Type controllerType)
{
return container.GetInstance(controllerType) as IController;
}
}
最佳答案
您检查过是哪个对象给了您 NullReferenceException
吗?
看起来你在这里将 container
分配给它自己:
private IContainer container;
public StructureMapControllerActivator(IContainer container)
{
container = container;
}
所以永远不会设置成员变量。将构造函数中的行更改为 this.container = container
就可以了。
关于c# - 为什么 structuremap 没有选择我的 HomeController?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7396355/
我正在使用 Symfony 3.4,当我尝试运行服务器时出现错误: In RegisterControllerArgumentLocatorsPass.php line 68: Class "AppB
好的,我一直在关注: http://railscasts.com/episodes/196-nested-model-form-part-1 以下是我迄今为止必须完成的步骤: rails new su
我的网络应用程序出现此错误: InvalidArgumentException in ControllerResolver.php line 160: Class "SocialWall/Contro
我正在从 scrach Symfony 学习 5.0.1 版本。我使用 --full 选项创建了一个项目。注释包已安装。 这是我的错误: Class "1\HomeController" does n
这是我第一次部署到heroku。我尝试使用 postgreSql 项目部署 Spring MVC。 当我第一次部署到heroku时,它说我缺少Procfile。然后我添加了带有文本的 Procfile
这是 asp.net mvc3。 当我尝试转到主页/索引操作时: public class HomeController : Controller { private
如标题所述,我想在 .NET Core 2.1 中实现某种授权,但我无法按照他们的教程进行操作。我已经设置了 Startup.cs 文件 public void ConfigureServices(I
我正在制作一个小型博客网站,但遇到了这个错误。有没有人可以帮忙?目前,我在 View 中定义的主页页面无法正常工作。我的 homepage.blade.php 页面,顺便说一句,在 front 文件夹
我刚开始使用基础,我使用脚手架创建了简单的 Posts 应用程序 我已经完成了以下步骤: rails new blog 然后将以下内容添加到 Gemfile gem 'foundation-rails
我有一个 HomeController,里面有很多 Actions。我希望用户无需输入 Home 即可访问我的操作。这是下面的路线 routes.MapRoute( name:
我正在尝试使用以下代码将查询结果从 HomeController 传递到主 Blade View ,但它似乎无法正常工作。 public function index() { $result=DB
我有一个 mvc 3 应用程序,其中我在 Index.cshtml View 上有一个输入表单。还有一个 webgrid,它有 edit,delete 按钮 根据这些操作链接,我需要更改我的提交按钮文
刚刚更新到 MVC 6 RC 1 并创建了一个新的 MVC 应用程序。 发现 Index action 方法被调用了两次。 Index()在 HomeControler : public string
首先,我最近想在JAVA EE上提高自己。而且还有一个题目,居然和我的问题一样。但是解决方案对我不起作用。这是该主题的链接: Exception encountered during context
我正在转换 Spring MVC app到 Spring Boot。Spring 应用程序有一个 Home Controller : @RestController public class Home
这是我使用 angularjs 的演示,用于创建服务文件并向 Controller 添加服务。 我的演示有两个问题: 一个是当我输入 之前 我得到这个错误, Error: [ng:areq] Argu
我正在查看 http://blog.backand.com/ng-grid-and-a-simple-rest-api/ 上的 ng-grid 教程 当我按照所有步骤操作时,它在控制台中显示以下错误
我正在从 ASP MVC Classic 迁移到 ASP Razor Pages。 只剩下一个 Controller 可以“迁移”:HomeController public class HomeC
我正在尝试为 Startup.cs 文件中的以下代码创建 DI。但是作为 .net 的新手,我很难找到解决方案。 var tokenAcquisition = context.HttpContext.
无法访问 homeController(模块 Controller )。单击“home”链接时,控制台出现错误“homeController 不是函数;未定义。 所以,我需要在哪里注册这个 Contr
我是一名优秀的程序员,十分优秀!