0

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

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

4

1 回答 1

1

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

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

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

于 2012-12-18T04:16:30.337 回答