我在很多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" />
但每次我运行我的应用程序时,它都无法解决依赖关系。有没有办法在整个应用程序中初始化一次,现在必须为每个控制器初始化它?
答案 0 :(得分:1)
实际上,您无需注册任何内容。 JavaScriptSerializer是一个具有零参数构造函数的具体类,因此Unity应该为您新建它,无需配置。
那么为什么以前没有用呢?配置它时,需要在别名中使用完整的程序集名称。你没有 - 你没有使用版本,公钥令牌和文化字段。因此,CLR无法找到您要求的程序集,并且解决方法失败。
从配置中删除别名和注册。