6
我滾動json轉換器,並且我有用映射指定裝飾的屬性。我使用反射來使用該映射描述來確定要創建什麼樣的對象以及它如何映射。下面是一個例子...列表<object>到列表<T>使用反射
[JsonMapping("location", JsonMapping.MappingType.Class)]
public Model.Location Location { get; set; }
,直到我得到一個集合映射我的正常工作......
[JsonMapping("images", JsonMapping.MappingType.Collection)]
public IList<Image> Images { get; set; }
的問題是,我不能」轉換列表到列表類型的屬性。
private static List<object> Map(Type t, JArray json) {
List<object> result = new List<object>();
var type = t.GetGenericArguments()[0];
foreach (var j in json) {
result.Add(Map(type, (JObject)j));
}
return result;
}
返回列表,但反射想讓我在做一個property.SetValue之前實現IConvertable。
任何人都知道更好的方法來做到這一點?
可能不會有所作爲,但你有沒有試圖改變地圖的返回類型IList的
您需要對IList進行逆變支持才能做到這一點。 C#沒有,所以你不能指定IList list = new List
嗯,我可以改變類型爲IList