Web服务中的多个早期绑定文件

时间:2014-07-16 15:51:26

标签: c# wcf dynamics-crm-2011

我有一个带有3个不同端点的WCF服务,需要使用不同的Dynamics CRM早期绑定类文件。我将它们放在不同的命名空间中,并已删除:[assembly: Microsoft.Xrm.Sdk.Client.ProxyTypesAssemblyAttribute()]我似乎无法弄清楚如何指定在启用代理类型时要使用的早期绑定文件。我试图避免在一个单独的项目中使用每个早期绑定文件。这些文件共享一些类似的实体,但最重要的是,各个端点的开发组织中不存在唯一的字段和实体(端点1具有端点2中不存在的实体)。

1 个答案:

答案 0 :(得分:0)

您需要在至少一个文件中定义ProxyTypesAssemblyAttribute。实际上什么文件并不重要,因为它是一个程序集属性,而不是一个类属性。您需要确保不要尝试使用类型进行IOrganizationService调用,该调用在该组织中不存在。

更新1

我对ProxyTypesAssemblyAttribute工作方式的理解是错误的。显然,在同一个程序集中,不能有多个具有相同Microsoft.Xrm.Sdk.Client.EntityLogicalNameAttribute(string)属性的类(字符串值必须是唯一的)。

您有两种可能的解决方案:

  1. 创建单独的程序集。
  2. 为两者使用相同的命名空间,但不要通过为每个CRM组织创建每个实体的类来重复类(这是https://xrmearlyboundgenerator.codeplex.com/变得非常有用的地方)。两者都存在的任何实体,你必须要么
    • 手动合并任何差异(当你调用它时,你必须知道什么是有效的,什么对每个组织无效!即如果Org 1的Contact实体有一个ShirtSize字段而Org 2没有' t,您无法填充该属性并尝试插入Org 2),
    • 使用一个组织中的文件,然后删除另一个组织。
  3. 第二种可能的解决方案可行,但我认为这不可行。