C# Dynamics crm 2011 Web服务问题

C# Dynamics crm 2011 Web服务问题,c#,web-services,dynamics-crm-2011,C#,Web Services,Dynamics Crm 2011,我一直被困在一个问题,显然有一个小修复,但我花了几十年。 我是一名CRM sharepoint dynamics等noob。然而,我已经设法在这方面做了一些工作。 我拥有的是CRM 2011网络服务 我在项目中添加了wsdl路径作为服务引用。这为我创建了Reference.cs类 这是抛出一个奇怪错误的代码 ServiceReference1.OrganizationServiceClient obj = new ServiceReference1.OrganizationServiceCli

我一直被困在一个问题,显然有一个小修复,但我花了几十年。 我是一名CRM sharepoint dynamics等noob。然而,我已经设法在这方面做了一些工作。 我拥有的是CRM 2011网络服务

我在项目中添加了wsdl路径作为服务引用。这为我创建了Reference.cs类

这是抛出一个奇怪错误的代码

 ServiceReference1.OrganizationServiceClient obj = new ServiceReference1.OrganizationServiceClient();
 ServiceReference1.Entity entity = new ServiceReference1.Entity();
 entity.LogicalName = "new_project";
 entity.Attributes = new ServiceReference1.AttributeCollection();
 entity.Attributes.Add(new KeyValuePair<string, object>("new_name", "project2"));

 ServiceReference1.OrganizationRequest request = new ServiceReference1.OrganizationRequest() { RequestName = "RetrieveDuplicates" };
 request.Parameters = new ServiceReference1.ParameterCollection();
 request.Parameters.Add(new KeyValuePair<string, object>("BusinessEntity", entity));
 request.Parameters.Add(new KeyValuePair<string, object>("MatchingEntityName", "new_project"));
 request.Parameters.Add(new KeyValuePair<string, object>("PagingInfo", new ServiceReference1.PagingInfo() { PageNumber = 1, Count = 50 }));

 var response= obj.Execute(request);
 obj.Create(entity);
ServiceReference1.OrganizationServiceClient obj=新的ServiceReference1.OrganizationServiceClient();
ServiceReference1.Entity实体=新的ServiceReference1.Entity();
entity.LogicalName=“新建项目”;
entity.Attributes=newServiceReference1.AttributeCollection();
添加(新的KeyValuePair(“新名称”、“项目2”);
ServiceReference1.OrganizationRequest request=新的ServiceReference1.OrganizationRequest(){RequestName=“RetrievedDuplicates”};
request.Parameters=newServiceReference1.ParameterCollection();
添加(新的KeyValuePair(“BusinessEntity”,entity));
添加(新的KeyValuePair(“MatchingEntityName”,“新项目”);
Add(新的KeyValuePair(“PaginInfo”,新的ServiceReference1.PaginInfo(){PageNumber=1,Count=50}));
var响应=对象执行(请求);
对象创建(实体);
代码只是检查我们要添加的“new_project”实体是否是已添加成员的副本

下面是我在obj.execute()上收到的令人讨厌的异常

格式化程序在尝试反序列化 消息:尝试反序列化参数时出错 . InnerException消息是“第1行位置669中的错误”。元素 'http://schemas.datacontract.org/2004/07/System.Collections.Generic:value' 包含映射到名称的类型中的数据 'http://schemas.microsoft.com/xrm/2011/Contracts:EntityCollection'. 反序列化程序不知道映射到此名称的任何类型。 考虑使用DATACONTractRelver或添加相应的类型 “EntityCollection”到已知类型列表-例如,通过使用 KnownTypeAttribute属性,或将其添加到已知属性列表中 传递给DataContractSerializer“”的类型。请参见内部异常 更多细节

还请注意,我已将Known属性附加到参考中的EntityCollection上。政务司司长


如果您能将我从这个泥潭中拖出来,我将不胜感激

请在将KnownType属性应用于EntityCollection的位置添加代码您应该使用dynamics crm sdk。它提供一个OrganizationServiceProxy和适当了解的相关类(包括实体)。如果我没记错的话,Sdk也有很多例子。