好的,我正在构建我的WCF服务。我遇到的问题是我的代理没有生成具有ListViewItem类型的类的代码,甚至我已经定义的类对象。
以下两个例子是我试图传递的类。
示例#1
[DataContract]
public class InvoiceCharges {
#region Property...
private int _invoiceChargeID;
private ListViewItem _listViewItem;
[DataMember]
public int InvoiceChargeID {
get { return _invoiceChargeID; }
set { _invoiceChargeID = value; }
}
[DataMember]
public ListViewItem ListViewItem {
get { return _listViewItem; }
set { _listViewItem = value; }
}
#endregion
示例#2
[DataContract]
public class Users {
#region Properties...
private int _userID;
private Divisions _Division = new Divisions();
[DataMember]
public int UserID {
get { return _userID; }
set { _userID = value; }
}
[DataMember]
public Divisions Division {
get { return _Division; }
set { _Division = value; }
}
在第二个例子中,我很困惑为什么它很难通过它已经看到的我的Division类。当然WCF可以传递你自己的自定义对象??我非常感谢任何帮助,我知道在其他平台上为了序列化您自己的自定义对象,您必须为您的班级做一些特别的事情。我不确定WCF是否自动处理了这个问题。
修改
对此仍有任何其他帮助。
我还尝试将以下内容添加到InvoiceCharges类,但仍然无法正常生成代理。
[KnownType(typeof(ListViewItem))]
此外,这是代理的行为。我正在使用“添加服务引用”来执行此操作。
看看它是如何产生几个“InvoiceCharges”的,因为ListViewItem。我可以删除它的DataMember属性及其罚款。
答案 0 :(得分:0)
ListViewItem是一种UI概念,在您的业务或服务代码中没有任何用处。重新思考“数据”(模型),而不是用户看到的内容并重新组织课程。
您的问题涉及无法序列化。除非你想重写UI位以使它们更加系列化,否则重新思考模型是最好的选择。