0

我有几个 WCF 服务,它们使用相同的 dataContracts 在它们之间交换数据。

我可以有一种元数据端点来集中管理所有这些模式吗?

在创建新的 WCF 服务时,我怎样才能使它从元数据端点加载架构(而不是重新定义它们)以在其 operationContracts 中使用?

谢谢!

4

1 回答 1

0

正如我在评论中所说,我不确定我是否理解您的问题(至少关于想要一个元数据端点),但听起来您希望能够在多个不同的服务中重用现有数据合同。

最简单的方法是将数据契约放在单独的程序集(类库 - DLL)中,然后让服务引用该程序集 - 它们不必在服务本身内部定义。

这是一个简单的示例(代码仅用于说明,不打算实际做任何事情或成为完整示例):

MyDataContracts 程序集

namespace MyDataContracts
{

    [DataContract]
    public class DataContract1
    {

    }

    [DataContract]
    public class DataContract2
    {

    }
}

MyService1 程序集

using MyDataContracts;

namespace MyService1
{

    [ServiceContract]
    public interface IMyService1
    {

        [OperationContract]
        DataContract1 GetSomeData(string someParm);
    }   
}

MyService2 程序集

using MyDataContracts;

namespace MyService2
{

    [ServiceContract]
    public interface IMyService2
    {

        [OperationContract]
        void SendSomeData(DataContract1 dc);

        [OperationContract]
        DataContract2 GetSomeOtherData(int parm);
    }
}

当然,每个 WCF 服务项目还需要包含对 MyDataContracts 程序集的引用。

现在,每当您创建新服务时,您只需添加对 MyDataContracts.dll 的引用,您就可以在其中重用您的数据合同。

于 2013-07-04T21:36:41.460 回答