请问有人请问向我解释请求和响应模型如何在WCF中工作?我有一个简单的服务,公开一个名为getRateOfExchange的方法,其中包含一个返回rateOfExchange []的整数参数,但从服务生成的Reference.cs文件包含许多类:WCF的困境:请求和响应类
getRateOfExchange(似乎是参数)
getRateOfExchangeRequest
getRateOfExchangeResponse
我尝试了这些类及其方法的每个排列但没有任何工程。直观上你会希望创建一个以参数对象作为参数的请求对象,然后将这个请求传递给执行请求的响应方法给服务器。
但是没有。
它必须是痛苦的。
有人能解释一下吗?
UPDATE
谢谢梁咏琪,但我的课并不像说。
如果我按照你的模型,我的要求是这样的:
CharterServices.charterServiceClient proxy = new CharterServices.charterServiceClient();
using (OperationContextScope scope = new OperationContextScope(proxy.InnerChannel));
{
using (proxy as IDisposable)
{
var response = proxy.getRateOfExchange()
}
}
但是,我getRateOfExchange()方法需要一个getRateOfExchange对象,所以上面的代码不compile.The getRateOfExchange类包含参数这是proxy.getRateOfExchange()方法的参数。我曾尝试创建这个类的一个实例并将其传递上述方法,像这样:
using (proxy as IDisposable)
{
var rateOfExchange = new Service.getRateOfExchange()
{
charterEnquiryId = 1550003668
};
using (OperationContextScope scope = new OperationContextScope(proxy.InnerChannel));
{
using (proxy as IDisposable)
{
var response = proxy.getRateOfExchange(rateOfExchange);
foreach (var rateOfExcchange in response)
{
Debug.WriteLine(rateOfExcchange.fromCurrencyName);
}
}
}
}
但试图调用getRateOfExchange()时,它挂起。
Aaargh!我知道该服务正在工作,因为我可以在SoapUI中执行相同的WSDL请求。
你能帮忙吗?
我不确定你的意思是“挂起”,但如果你传递一个对象作为参数,那么它需要一个DataContract。在创建新的WCF应用程序时,代码中有一个示例,或者请参阅此处:http://msdn.microsoft.com/en-us/library/ms733127%28v=vs.110%29.aspx – Gigi
与论坛网站不同,我们不使用“谢谢”或“任何帮助表示赞赏”,或在[所有]上签名。请参阅“[应该'嗨','谢谢',标语和致敬从帖子中删除?](http://meta.stackexchange.com/questions/2950/should-hi-thanks-taglines-and-salutations-be - 从我的帖子中删除) –