Я новичок в WCF и изучаю шаблон проектирования MVP.У меня есть тестовый проект с работающим сервисом WCF.Я могу проверить с клиентом тестирования WCF, и он работает нормально.
Мне нужна помощь в том, как вызвать службу WCF из моего уровня Presenter, а затем сделать так, чтобы Presenter передавал данные обратно в View (winforms).У меня есть форма Windows с двумя текстовыми полями с именами txtProductID и txtDescription.У меня также есть кнопка с именем btnGetProductData.Я хотел бы, чтобы произошло следующее:
- Я добавлю идентификатор продукта в поле txtProductID.
- Я нажму кнопку btnGetProductData, и докладчик должен вызвать метод GetProductData изСлужба WCF и возврат описания продукта в поле 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;
}
}
}