2012-12-16 36 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無法找到您要求的組件並且解決方案失敗。

從配置中刪除別名和註冊。