我有一個OR映射器(iBatis.Net),返回一個IList。如何序列化IList <T>?
// IList<T> QueryForList<T>(string statementName, object parameterObject);
var data = mapper.QueryForList<Something>(statement, parameters);
我想在web服務中使用它想要返回數據1:1。當然,我不能在WebMethod中返回IList,因爲它是一個接口,因此不可序列化。
我發現映射器真的返回一個List。但是我害怕將它轉換爲List,因爲mappers內部的工作方式在未來的版本中可能會發生變化(並且只是感覺很髒)。
這樣,我......
a) return new List<Something>(data);
b) return (List<Something>)data;
c) // your solution here
非常感謝!
IList返回的是List的事實不是公共API的一部分;這是使用接口的所有要點。 – 2009-01-21 09:52:40
不是我說的。返回ilist是公共API的一部分 – norbertB 2009-01-21 11:53:07
norbertB,是的,解決方案a)是安全的,但是如果IList包含很多元素,它會很慢,也... b)最快但不安全,因此我的問題是解決方案c)。 – Hinek 2010-06-04 11:57:14