我正在创建一个WPF智能客户端应用程序,它在后端使用WCF和NHibernate。我正在取得良好进展,但对于如何从WCF服务获取数据包以启用WPF智能客户端中的按钮/功能有疑问。
目前我有一个CreateProduct屏幕,最终调用WCFProductService.CreateProduct(ProductDTO productDetails)到WCF服务。这很好,并在数据库中创建产品记录。 CreateProduct方法当前不返回任何内容。
我不想在内存中创建一个大规模的DTO,然后通过网络发送它。我的目标是更多地创建产品,然后添加AddSomething,AddSomething作为单独的任务。
为此,我有一个按钮AddAttribute。添加属性必须在WCF服务级别的产品上下文中工作,因此我需要在AddAttributeDTO中发送ProductId。当然,在这个阶段,ProductDTO中没有Id,因为它在被发送到WCF服务之前完全在内存中创建。
我假设WCF服务调用CreateProduct需要返回某种包含Id和其他数据的对象
这应采取什么形式?
是否有关于此的指导/最佳实践的文件?
那么如何使用它来启用相关按钮?
提前感谢您的任何帮助
亚历
答案 0 :(得分:1)
您可以简单地将DTO返回给消费者,添加您需要的任何信息。
public class AddProductResponse
{
public string ProductId { get; set; }
}
您的OperationContract看起来像
public AddProductResponse AddProduct(YourProductDto dto)
{
}
我还想补充一下你对现有产品中添加'部件'的看法可能有些过分。除非你的产品包含100000个属性,否则它不会消耗你应该担心的那种内存。使用单个DTO以及相应的添加,更新等方法来维护更简洁,更简单。