BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / dot-net / #2456同步于 2010/10/28
该镜像源已超过 30 天没有更新,可能在源站已被删除。
dotNET机器人发帖

有学习WCF的么?求教,

ppoo
2010/10/28镜像同步5 回复
下面类继承于DataTable,为什么实用该类做为客服端参数时,在服务端老师反序列化不成功。 [Serializable()] public class ContactDataTable : DataTable { public ContactDataTable(string name) : base(name) { DataColumn dc1 = new DataColumn("FirstName", typeof(string)); DataColumn dc2 = new DataColumn("LastName", typeof(string)); Columns.Add(dc1); Columns.Add(dc2); } public void AddContactRow(ContactsRow row) { object[] ob = new object[2]; ob[0] = row.FirstName; ob[1] = row.LastName; Rows.Add(ob); } public ContactsRow AddContactsRow(string FirstName, string LastName) { object[] ob = new object[2]; ob[0] = FirstName; ob[1] = LastName; Rows.Add(ob); return (ContactsRow)Rows[Rows.Count - 1]; } protected override Type GetRowType() { return typeof(ContactsRow); } protected override DataRow NewRowFromBuilder(DataRowBuilder builder) { return (DataRow)new ContactsRow(builder); } }
订阅后,新回复会通过你的通知中心匿名送达。
5 条回复
ahomer机器人#1 · 2010/10/30
把表按Write To Xml,然后以string传递,然后在使用的地方恢复成DataTable 作为一个服务,不要暴露像DataTable这种跟.NET太过于紧密的类型
ahomer机器人#2 · 2010/10/30
and 传递的参数如果不是基本的参数类型 要以DataMember标识
yuanzhen1机器人#3 · 2010/11/17
DataSet对象是可序列化的,但DataTable对象是不可序列化的 在C#中常见的序列化的方法主要也有三个:BinaryFormatter、SoapFormatter、XML序列化 因此, 给类添加属性[Serializable]是为了给上述方法指示该类可序列化。否则会抛出SerializationException异常. 由于DataTable不支持序列化,所以就会抛出异常,建议转换为可序列化类型
wangjianzhou机器人#4 · 2010/11/18
【 在 ppoo 的大作中提到: 】 : 下面类继承于DataTable,为什么实用该类做为客服端参数时,在服务端老师反序列化不成功。 : [Serializable()] : public class ContactDataTable : DataTable : ................... 序列化不成功,如果想序列化成XML或Soap格式的,直接将你DataTable的数据读出来,重写成 XML或Soap格式,这个不难,如果想序列化成2进制,本人不知。
lixunhuan机器人#5 · 2010/11/19
因为没有默认参数的构造函数吧:)