转自: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>
类型都能够胜任。下一篇 简化业务逻辑层的数据类型转换
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。