2012-12-16 33 views
0

我有这个在我的很多MVC控制器:如何使用Unity来解析JavaScriptSerializer?

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

其实,你不需要注册任何东西。 JavaScriptSerializer是一个具有零参数构造函数的具体类,所以Unity应该为您提供新的功能,无需配置。

那么为什么之前没有工作?当您配置它时,您需要在别名中使用完整的程序集名称。你没有 - 你忘了版本,公钥标记和文化领域。因此,CLR无法找到您要求的组件并且解决方案失败。

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