WCF服务 - 将代码拆分为多个类

时间:2010-09-24 14:31:30

标签: asp.net wcf

我目前正在寻找第一次开发WCF服务,但有点困惑。

假设我有一个将要调用此Web服务的Windows应用程序,该服务随后将调用我们的数据方法来检索和保存数据。

现在,比方说,我们的解决方案中有两个类,即客户和产品。服务中的所有方法都必须进入同一个类文件(例如MyService.svc),还是可以将它们分成几个复制主数据层的类,即Customer.cs和Product.cs。如果它们可以拆分,那么如何在Windows窗体应用程序中调用它们?每个班级都是不同的终点吗?

目前我可以访问主类中的方法(例如MyService.svc),但我看不到其他类中的任何方法,即使我将它们归为“ServiceContract”和“OperationContract” ”。

我有一种感觉,我错过了一些简单的东西,只是不确定是什么。

如果一个好人可以指导我这样做的教程,我将不胜感激,因为我发现的每个教程都只包括单个班级:)

提前致谢。

3 个答案:

答案 0 :(得分:1)

您需要定义的是服务的数据合同

理论上,这些数据合同可能是您的业务实体(自3.5 SP1及其WCF poco支持)

最好为您的服务创建单独的实体,然后创建可以将您的业务实体转换为服务实体的转换类,反之亦然

答案 1 :(得分:0)

实际上,经过大量的搜索,我终于在发布问题(典型)之后似乎找到了我想要的东西。

我找到了以下页面 - http://www.scribd.com/doc/13136057/ChapterImplementing-a-WCF-Service-in-the-Real-World

虽然我还没有完成它,但它看起来确实会覆盖我所追求的目标。

浪费任何时间的道歉:)希望这对于寻找相同事物的其他人有用。

答案 2 :(得分:0)

听起来你只需要一项服务。但是,如果您需要创建多个服务。以this为例。

[ServiceContract(Name = "Utility", Namespace = Constants.COMMON_SERVICE_NAMESPACE)]
public interface IService

[ServiceContract(Name="Documents", Namespace = Constants.DOCUMENTS_SERVICE_NAMESPACE)]
public interface IDocumentService

[ServiceContract(Name = "Lists", Namespace = Constants.LISTS_SERVICE_NAMESPACE)]
public interface IListService

请记住,您可以在单个服务中创建多个数据协定,对于需要引用客户和产品的方法,它是最佳解决方案。

查看MSDN的数据合同示例here可能会有所帮助。