どうやら小さな修正があるようですが、何十年もかかる問題で立ち往生しています。私は CRM シェアポイント ダイナミクスなどの初心者です。しかし、私はそれでいくつかの仕事をすることができました。私が持っているのは CRM 2011 Web サービスです。
プロジェクトに 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 を参照してください。
また、参照で EntityCollection に KnownAttribute を添付したことにも注意してください。cs。
この泥沼から引きずり出してくれたらありがたい