我是WCF的新手。我只是按照一个简单的演练来创建和使用一个简单的WCF服务(演练使用字符串数据类型)。但是,我无法使用自定义类型的WCF服务。这就是我的尝试:
首先,我创建了界面。
[DataContract]
public class TicketInfo
{
public string TicketID { get; set; }
public string TicketDescription { get; set; }
}
[OperationContract]
String GetTicketInfo(TicketInfo ticketInfo);
然后我在实现接口的服务中创建了该方法:
public string GetTicketInfo(TicketInfo ticketInfo)
{
return string.Format("The ID is {0}", ticketInfo.TicketID);
}
然后我在客户端添加了服务参考。
现在,我正在尝试使用该服务:
Service1Client client = new Service1Client();
string returnString;
TicketInfo ticketInfo = new TicketInfo();
ticketInfo.ID = "1";
returnString = client.GetTicketInfo(ticketInfo);
代码在这里失败:
ticketInfo.TicketID = "1";
错误消息是:
' Ticketnfo'不包含' TicketID'的定义没有延伸 方法' TicketID'接受类型' TicketInfo'的第一个参数。可能 发现(您是否缺少using指令或程序集引用?)
在客户端上显示TicketInfo的定义:
public partial class TicketInfo : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged {
[System.NonSerializedAttribute()]
private System.Runtime.Serialization.ExtensionDataObject extensionDataField;
[global::System.ComponentModel.BrowsableAttribute(false)]
public System.Runtime.Serialization.ExtensionDataObject ExtensionData {
get {
return this.extensionDataField;
}
set {
this.extensionDataField = value;
}
}
为什么客户端上的ServiceReference1.TicketInfo没有服务器上的Service1.TicketInfo的所有属性?我该如何使用该服务?
答案 0 :(得分:1)
尝试使用DataMember属性
装饰DataContract的成员