它看起來像serverside不能接收傳遞的值,requestVersion.Ping爲空。WCF:客戶端發送值但服務器收到空字符串
namespace Communication
{
public class DataForRequestVersion
{
public string Ping = "";
}
public class DataForResponseVersion
{
public string Pong = "";
public string Version = "";
}
}
[ServiceContract]
public interface IService
{
[OperationContract]
Communication.DataForResponseVersion Version(Communication.DataForRequestVersion requestVersion);
}
//Server
[ServiceBehavior(InstanceContextMode = InstanceContextMode.PerCall)]
public class ServiceImplementation : WCFSimple.Contract.IService
{
public Communication.DataForResponseVersion Version(Communication.DataForRequestVersion requestVersion)
{
//Here requestVersion.Ping is EMPTY
Communication.DataForResponseVersion responseVersion = new Communication.DataForResponseVersion();
responseVersion.Pong = requestVersion.Ping;
responseVersion.Version = "MyApp v" + Settings.version;
return responseVersion;
}
}
//Client makes a request here
Communication.DataForRequestVersion requestVersion = new Communication.DataForRequestVersion();
requestVersion.Ping = DateTime.Now.ToString(Settings.DayTimePreciseFormat);
//Here requestVersion.Ping has a value
Communication.DataForResponseVersion responseVersion =
Service.Version(requestVersion);
我錯過了什麼?
UPDATE
我的應用程序工作得很好,雙方通過傳遞自定義數據類沒有任何問題溝通。然而,我試圖修改測試客戶端哪一個只發送 - 接收當前時間爲字符串,並使其參數有點複雜;從字符串到自定義數據類。主解決方案的應用程序可以發送版本請求並接收答案。所以我認爲我的小測試客戶端遇到了問題。
這裏是pastebin code:
月2日更新:
有些主持人不允許我來回答我的問題,我不知道爲什麼,我發現了一個非常類似的問題,這個人也回答了他自己的問題。下次我幫他人解釋原因;我用命名空間,而不是創建類 ......我定:
//namespace Communication
public class Communication
另外...公共領域不被大量推薦...屬性將是更可取; –