0

我一直被困在一个问题上,这个问题显然有一个小修复,但花了我几十年的时间。我是 CRM 共享点动态等菜鸟。不过,我已经设法在其中做了一些工作。我拥有的是 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);

代码只是检查我们将要添加的“new_project”实体是否与已添加的成员重复。

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

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

另请注意,我已将 KnownAttribute 附加到参考中的 EntityCollection 上。CS。

如果你能把我从这个泥潭里拖出来,我会很感激的

4

0 回答 0