0
好吧,我正在构建我的WCF服务。我遇到的问题是我的代理没有生成类型为ListViewItem的类的代码,甚至是我已经定义的类对象。关于类属性类型的WCF
下面的两个例子是我试图通过的类。
例子#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; }
}
在第二个例子中,我很困惑,为什么它有一个硬的时间正好路过我司类,它已经看到。当然WCF可以传递你自己的自定义对象?任何帮助都非常感谢,我知道在其他平台上为了序列化你自己的自定义对象,你必须为你的课程做一些特别的事情。我不确定WCF是否自动处理这个问题。
编辑
在这个任何其他帮助,仍然赞赏。
我也尝试将以下内容添加到InvoiceCharges类中,但仍无法正确地看到代理生成。
[KnownType(typeof(ListViewItem))]
此外,这是代理的行为。我正在使用添加服务引用来执行此操作。
看看它是如何产生它的几个都因为一个ListViewItem的 “InvoiceCharges”。我可以删除它的DataMember属性和罚款。
Divisions类是否也具有DataContract属性? – 2012-02-22 17:20:20
是的,奇怪的是当我从自定义对象(如ListViewItem属性和Division属性)中删除它有问题的[DataMember]属性。该类在客户端成功生成代理。 – meanbunny 2012-02-22 17:23:38
嗯,我猜ListViewItem没有标记DataContract属性,所以这可能是问题。由于您没有发布代码,因此无法确定Divisions类。 – 2012-02-22 17:56:51