2011-05-06 97 views
0

我的應用程序需要結合大量使用依賴注入和使用JSON作爲公共API。這顯然導致需要定製JavaScriptConverter。依賴注入和JavaScriptConverter.Deserialize

現在,我的JavaScriptConverter的Deserialize方法是這樣的:

public override object Deserialize(IDictionary<string, object> dictionary, Type type, JavaScriptSerializer serializer) 
{ 
    var result = IocHelper.GetForType(type); 
    return result; 
} 

這接過了相應的類。不幸的是,它沒有用適用的值填充類成員。我所缺少的是一種告訴串行器的方式,「這是你要求的類型,現在填寫它。」

回答

1

我以前是從JavaScriptSerializer切換到Newtonsoft's JSON converter

我能夠寫一個CustomCreationConverter獲得工作往返的解決方案:

public class JsonDomainConverter : CustomCreationConverter<object> 
{ 
    public JsonDomainConverter() 
    { 
    } 

    public override bool CanConvert(Type objectType) 
    { 
     return objectType.IsInterface; 
    } 

    public override object Create(Type objectType) 
    { 
     return IocHelper.GetForType(objectType); 
    } 
} 

毫無疑問,同樣的方法是可能的JavaScriptSerializer ,我只是無法弄清楚如何使它工作。用Newtonsoft的東西,最多花了幾個小時,而且只需幾行代碼。