如何使用Unity解析JavaScriptSerializer?

时间:2012-12-16 01:20:10

标签: c# asp.net-mvc unity-container

我在很多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" />

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

但每次我运行我的应用程序时,它都无法解决依赖关系。有没有办法在整个应用程序中初始化一次,现在必须为每个控制器初始化它?

1 个答案:

答案 0 :(得分:1)

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

那么为什么以前没有用呢?配置它时,需要在别名中使用完整的程序集名称。你没有 - 你没有使用版本,公钥令牌和文化字段。因此,CLR无法找到您要求的程序集,并且解决方法失败。

从配置中删除别名和注册。