轉:SilverLight4 + WEB SERVICE 解決方案(二)

來源:互聯網
上載者:User

轉自:http://www.cnblogs.com/anncesky/articles/1778061.html

 

解決了跨域訪問之後,開始構建WEB SERVICE 端架構

我還是使用傳統的三層,外加實體層,因為實體層可以很好的進行預設序列化,不必

自己進行序列化了。

資料層:

    public class ADAL
{
public DataTable GetData()
{
DataTable dt = new DataTable();
dt.Columns.Add("id",typeof(int));
dt.Columns.Add("name", typeof(string));
dt.Columns.Add("sex", typeof(bool));
for (int i = 0; i < 10; i++)
{
DataRow dr = dt.NewRow();
dr[0] = i + 1;
dr[1] = ((char)('A' + i)).ToString();
dr[2] = i % 2 == 0 ? true : false;
dt.Rows.Add(dr);
}
return dt;
}
}

 

商務邏輯層:

 

    public class ABLL
{
public List<AModel> GetData()
{
DataTable dt = new ADAL().GetData();
List<AModel> list = new List<AModel>();

//DataConvter.TableToList(dt, list);

AModel mTemp;
foreach (DataRow dr in dt.Rows)
{
mTemp = new AModel();
mTemp.id = (int)dr.ItemArray[0];
mTemp.name = (string)dr.ItemArray[1];
mTemp.sex = (bool)dr.ItemArray[2];
list.Add(mTemp);
}

return list;
}
}

 

實體層:

 

    public class AModel
{
public int id { get; set; }
public string name { get; set; }
public bool sex { get; set; }
}

 

 

這三層中,只有商務邏輯層,有點跟平時不太一樣,就是加了一個從DataTable類型轉成List<Model>類型

因為,雖然DataTable支援序列化,也帶有[SerializableAttribute]屬性,但在SL端,雖然可以,但並不

太容易擷取資料,而List<Model>到SL端可以很容易獲得資料,只是把它轉換成 Model[] 組數類型了。

 

一些清單控制項的綁定資料來源只要求是 IEnumerable 類型就可以了,所以無論是 組數、List、 List<Model>

類型都能夠勝任。下一篇 簡化商務邏輯層的資料類型轉換

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.