我創建了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