我创建了REST Web服务,在其他所有方式下,我都希望它能够工作。调用REST Web服务时返回空类返回
我有一个包含联系人的主类,在那个类中,还有其他2个我创建的类的列表。 我的主要课程和其中一个列表通过电话会议,并保留所有信息。然而,第二课堂是空着的。它包含列表中的每个项目,但每个列表项都是空的。
的Web服务功能
[OperationContract]
[WebGet(UriTemplate = "/Login/{IQPid}/{Password}")]
public IQP_Contacts Login(string IQPid, string password)
{
int iqpID = 0;
try
{
iqpID = int.Parse(IQPid);
}
catch { return null; }
IQP_Contacts contact = this.Repository.Contacts.Find(delegate(IQP_Contacts c) { return c.IqpID == iqpID; });
if (contact.Password == password)
{
return contact;
}
else return null;
}
代码调用Web服务
WebClient proxy = new WebClient();
byte[] abc = proxy.DownloadData((new Uri("http://localhost:53468/IQP_Service.svc/Login/" + ID + "/" + password)));
Stream strm = new MemoryStream(abc);
DataContractSerializer obj = new DataContractSerializer(typeof(IQP_Contacts));
IQP_Contacts contact = (IQP_Contacts)obj.ReadObject(strm);
正如你可以看到下面,我的web服务的类所包含的信息,但该网页不
如果有人有任何想法,请让我知道。我迷失在这一个。这个简单的东西不应该被破坏。由于
您确定您的DataContract(IQP_Contacts)在客户端和服务器上都相同吗? – 2012-02-22 01:11:54
是的,web服务和网站是在同一个地方,并引用完全相同的类。另外,在浏览器中使用URI调用函数以获取XML回复时,文件将返回空白。 – Seige 2012-02-22 01:15:26
我曾经有一个类似的问题,当我通过visual studio进行调试时,我看到我的实体的值已经填充,但是当传递实体时,这些成员未被填充。我认为**在Visual Studio中检查属性的行为会触发实体获取其值(不确定这是否是正确的术语)。如果您要在您的Web服务中放入一些简单访问属性的打印语句,您可能会发现返回的对象将会填充(也许)其数据。 – Tung 2012-02-22 01:41:02