ASP.NET MVC 5 Controller自定义构造函数

时间:2015-05-04 03:54:58

标签: c# asp.net asp.net-mvc controller asp.net-mvc-5

我正在尝试为我的ASP.NET MVC 5 Controller创建一个构造函数,该构造函数用于初始化Repository,Mapper和Services等属性。对于组页面,这是我编写的代码:

    public ApplicationDbContext Db { get; private set; }
    public GroupMapper Mapper { get; private set; }
    public ImageUploadService ImageUploader { get; private set; }

    public GroupsController()
    {
        this.Db = new ApplicationDbContext();
        this.Mapper = new GroupMapper(Db);
        this.ImageUploader = new ImageUploadService(this.Server);
    }

这里的问题是,父控制器aint的属性已初始化,因此无法在子构造函数中使用。在这种情况下,属性为'this.Server',但在对象完成之前该值不存在。如果我在控制器操作中使用'this.Server',它就可用了。但是如果我在构造函数中使用它,它就不会,而是返回一个空引用。

我不知道为什么ASP.NET MVC会以这种方式运行,我想当我创建一个子控制器时,所有父属性都已存在,但我错了。当我使用ImageUploader服务时,这会导致一个问题,因为依赖项'this.Server'为空,我遇到了大量错误。

那么有谁知道如何修复或解决这个问题?这真让我感到惊讶,我不知道我能做些什么。

0 个答案:

没有答案