Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/306.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将(初始化)参数注入构造函数-Autofac_C#_Asp.net Mvc_Inversion Of Control_Autofac - Fatal编程技术网

C# 将(初始化)参数注入构造函数-Autofac

C# 将(初始化)参数注入构造函数-Autofac,c#,asp.net-mvc,inversion-of-control,autofac,C#,Asp.net Mvc,Inversion Of Control,Autofac,是否有任何方法将参数注入构造函数,该参数当前是在basecontroller上的Initialize方法中创建的 示例代码: public class SSBaseController : Controller { protected UserProfileClass UserProfile; protected override void Initialize(System.Web.Routing.RequestContext requestConte

是否有任何方法将参数注入构造函数,该参数当前是在basecontroller上的Initialize方法中创建的

示例代码:

public class SSBaseController : Controller
    {
        protected UserProfileClass UserProfile;

        protected override void Initialize(System.Web.Routing.RequestContext requestContext)
        {
            base.Initialize(requestContext);
            UserProfile = UserProfileGetter.getProfileFromDB();
        }

    }

    public class SSController:SSBaseController
    {
        private IProcessService processService;
        public SSController(IProcessService _processService)
        {
            processService = _processService;
        }
    }

    public interface IProcessService
    {
        void doStuff();
    }

    public class ProcessService1 : IProcessService
    {
        private UserProfileClass upc;
        private string _name;
        public ProcessService1(UserProfileClass _profileClass)
        {
            upc = _profileClass;
        }

        public void doStuff()
        {
            _name = upc.name;
            upc.name = "xxx";
        }
    }

    public class UserProfileGetter
    {
        public static UserProfileClass getProfileFromDB()
        {
            return null;
        }
    }

    public class UserProfileClass

    {
        public string name;
    }
我还想去掉初始化,这可能吗?
如何使用该参数注册ProcessService而不在SSController中为空?

可以集成ASP.NET MVC和Autofaq。然后只需注册接口实现并指定控制器的构造函数参数。框架将完成所有其他工作。 看见
这里还有一篇文章:

是的,我可以轻松地完成注册和填充,只是当它从初始化的控制器获取参数时,就变得不容易理解了。我在某个地方读过关于激活的书?我不明白你的评论。看起来您可以将类似于IUserProfileGetter的内容传递给控制器的构造函数,并使用一个属性UserProfile,如果该属性不为null,它将返回_UserProfile,或者在第一次调用时在IUserProfileGetter的帮助下创建它。