我是WCF的新手,我也在学习MVP设计模式。我有一个运行WCF服务的测试项目。我能够用WCF测试客户端进行测试,并且工作正常。WCF - 从演示层调用WCF服务
我需要帮助如何从我的Presenter图层调用WCF服务,然后让Presenter将数据传递回视图(winforms)。我有一个名为txtProductID和txtDescription的两个文本框的Windows窗体。我也有一个名为btnGetProductData的按钮。我想要发生以下情况:
- 我会在txtProductID字段中放置产品ID。
- 我将单击btnGetProductData按钮,演示者应调用WCF服务中的GetProductData方法,并将产品描述返回到表单上的txtProductDescription字段。
下面是从WCF服务库相关代码:
IProductService.cs
------------------
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.Text;
namespace MyWCFServices.ProductService
{
[ServiceContract]
public interface IProductService
{
[OperationContract]
Product GetProductData(string ProductId);
}
[DataContract]
public class Product
{
[DataMember]
public string ProductID { get; set; }
[DataMember]
public string ProductDescription { get; set; }
}
}
ProductService.cs
--------------------
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.Text;
using MyWCFServices.ProductEntities;
using MyWCFServices.ProductBusinessLogic;
namespace MyWCFServices.ProductService
{
public class ProductService : IProductService
{
ProductLogic productLogic = new ProductLogic();
public Product GetProductData(string ProductId)
{
ProductEntity productEntity = productLogic.
GetProductData(ProductId);
Product product = new Product();
TranslateProductEntityToProductContractData(productEntity,
product);
return product;
}
private Product TranslateProductEntityToProductContractData(
ProductEntity productEntity, Product product)
{
product.ProductID = productEntity.ProductID;
product.ProductDescription = productEntity.ProductDescription;
return product;
}
}
}
你的服务看起来不错,但您不必在客户端上有什么问题,特别是? EG:您是否在创建代理时遇到问题,是否不会返回您期望的内容? – 2011-05-02 17:13:44