WCF数据契约集中化
我有几个WCF服务使用相同的DataContract在它们之间交换数据 我可以有一种元数据端点来集中管理所有这些模式吗 在创建新的WCF服务时,如何使其从元数据端点加载架构(而不是重新定义它们)以在其operationContracts中使用WCF数据契约集中化,wcf,soa,Wcf,Soa,我有几个WCF服务使用相同的DataContract在它们之间交换数据 我可以有一种元数据端点来集中管理所有这些模式吗 在创建新的WCF服务时,如何使其从元数据端点加载架构(而不是重新定义它们)以在其operationContracts中使用 谢谢 正如我在评论中所说,我不确定我是否理解您的问题(至少是关于需要元数据端点的问题),但听起来您希望能够在多个不同的服务中重用现有的数据契约 最简单的方法是将数据协定放在一个单独的程序集中(类库-DLL),然后让服务引用该程序集-它们不必在服务本身中定义
谢谢 正如我在评论中所说,我不确定我是否理解您的问题(至少是关于需要元数据端点的问题),但听起来您希望能够在多个不同的服务中重用现有的数据契约 最简单的方法是将数据协定放在一个单独的程序集中(类库-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的引用,就可以在其中重用数据契约。我不确定是否理解您的问题,但如果您希望在多个服务之间使用相同的数据契约,只需将它们放入一个单独的程序集中,并让每个服务引用该程序集。您所说的元数据端点是什么意思?集中管理所有这些模式?你的模式是什么?什么是集中化管理?同意,然后从客户美国ChannelFactory[1]获得共享程序集中的合同,并避免完全添加服务引用。[1] @kellyb-是,如果服务合约在共享程序集中。数据契约不应该考虑ChannelFactory。谢谢!我在使用WCF kewyord时犯了一个错误。假设您有一个团队用wcf实现服务,另一个团队用Java实现服务。共享dll方法不起作用。我希望能够以独立于平台的方式集中合同定义。