C# 如何使用Unity解析JavaScriptSerializer?

C# 如何使用Unity解析JavaScriptSerializer?,c#,asp.net-mvc,unity-container,C#,Asp.net Mvc,Unity Container,我的很多MVC控制器都有这样的功能: private JavaScriptSerializer _javaScriptSerializer; protected JavaScriptSerializer javaScriptSerializer { get { if (_javaScriptSerializer == null) {

我的很多MVC控制器都有这样的功能:

private JavaScriptSerializer _javaScriptSerializer;
        protected JavaScriptSerializer javaScriptSerializer
        {
            get
            {
                if (_javaScriptSerializer == null)
                {
                    _javaScriptSerializer = new JavaScriptSerializer();
                }

                return _javaScriptSerializer;
            }
            set
            {
                _javaScriptSerializer = value;
            }
        }
我已尝试通过以下方式解决此问题:

<alias alias="JavaScriptSerializer" type="System.Web.Script.Serialization.JavaScriptSerializer, System.Web.Script.Serialization" />



但每次我运行我的应用程序时,它都会让我无法解析依赖关系。是否有一种方法可以在整个应用程序中初始化一次,现在必须为每个控制器初始化它

实际上,您不必注册任何内容。JavaScriptSerializer是一个具有零参数构造函数的具体类,因此Unity应该为您重新创建它,无需配置

那为什么它以前不起作用呢?配置时,需要在别名中使用完整的程序集名称。您没有-您省略了版本、公钥令牌和区域性字段。因此,CLR无法找到您请求的程序集,解析失败

从配置中删除别名和注册

<register type="JavaScriptSerializer" mapTo="JavaScriptSerializer" />