服务引用与程序集引用,使用WCF服务

时间:2010-08-16 12:45:35

标签: .net architecture service reference design-patterns

我有一个WCF服务(带有servicecontracts,datacontracts等),如下所示:

[ServiceContract(Namespace = "http://company.com/MyCompany.Services.MyProduct")]
public interface IService
{
    [OperationContract]
    CompositeType GetData();
}

[DataContract(Namespace = "http://company.com/MyCompany.Services.MyProduct")]
public class CompositeType
{
    // Whatever
}

如果我想在客户端使用该服务,我认为有两种选择:

  1. 使用服务参考(使用WDSL)来发布WCF服务;
  2. 使用程序集对程序集的引用包含Interfaces,Contracts,DataContracts类。
  3. 我在90%的时候使用.NET到.NET场景。

    哪种方式最好?彼此的优势在哪?

1 个答案:

答案 0 :(得分:1)

如果您真的想要将服务用作服务,那么您将不得不使用服务引用。否则,您只需将依赖项添加到另一个DLL,就像任何其他程序集引用一样。

此外......如果您的服务连接到仅存在于服务器上的任何类型的数据库或网络资源,则服务参考确实是您唯一的选择。如果您添加程序集引用,客户端将尝试直接连接到资源...这很可能不会公开。

添加直接程序集引用而不是服务引用的好处是,您不必经历调用代码作为服务添加的所有开销(Web服务器处理请求,实例化您的服务,序列化)对象,执行代码,序列化结果,并将所有内容传递回客户端。)