代码之家  ›  专栏  ›  技术社区  ›  Andy White

WCF项目设置和依赖关系

  •  1
  • Andy White  · 技术社区  · 17 年前

    设置WCF服务项目和应用程序最常见/最好的方法是什么?

    这里有一个例子:

    • 解决方案:“我的项目”
      • 包含ServiceContract接口和任何DataContract
    • WCF服务Web应用程序:“MyProject.Service”
      • 包含对MyProject的引用。Common和Impl,以便它可以托管服务
    • ASP。NET Web应用程序:“MyProject.Web”
      • 包含对“MyProject.Common”和“MyProject.Impl”的引用,以便它可以使用客户端类

    4 回复  |  直到 17 年前
        1
  •  5
  •   JP Alioto    17 年前

    Web Service Software Factory solution structure 此外,IDesign。NET(Juval Lowy)有一些 guidance on that 还有(zip链接)。

        2
  •  1
  •   Hugo Zapata    17 年前

    如果您使用的是复杂类型,则应在客户端应用程序中包含服务接口和通用类,否则生成的代理将复制您在服务中使用的类型的定义,并且可能会在以后的序列化中给您带来麻烦。..

    然后,您可以手动生成一个代理,该代理使用公共程序集中的类型,而不会重新创建模拟您的类型的其他类。

    g\Schmurgon。数据。Contracts.dll http://localhost:5150/Schmurgon.WcfService.Host/S 服务svc?wsdl

    开关包括:

    /out:param只是输出代理类的名称。

    (此内容粘贴自 http://schmurgon.net/blogs/ben/archive/2006/12/17/wcf-proxy-generation-without-types.aspx )

        3
  •  1
  •   blowdart    17 年前

    这取决于。

    通常,生成的代理类足以让客户端程序调用WCF服务,因此不需要客户端库。当然,也有这种情况,例如,如果你的合约只指定Message作为其参数,并且你在幕后使用数据合约,但这种情况很少见!

    如果你觉得你需要一个客户端类,我不会把它和你的服务实现放在同一个库中——客户端不需要知道服务是如何实现的,只需要知道如何调用服务。通过将两者结合在一起,您也在分发您的服务实现。

    如果你用数据契约标记你使用的类,Hugo提到的复杂类型问题就不会发生,无论如何,你都应该这样做,以便对服务进行简单的版本控制。

        4
  •  1
  •   marc_s MisterSmith    17 年前

    马克

    推荐文章