ExecuteMultipleResponse; 如何从rest中读取和存储Guids

我正在使用ExecuteMultipleResponse方法使用SSIS一次插入10个帐户记录。

List _Accounts = new List(); // Check the batch size and process public override void InputAccount_ProcessInput(InputAccountBuffer Buffer) { //List personIDs = new List(); int index = 0; while (Buffer.NextRow()) { _Accounts.Add(InputAccountFromBuffer(Buffer)); //personIDs.Add(int.Parse(Buffer.sPersonID)); index++; if (index == 10) { ImportBatch(); index = 0; } } ImportBatch(); } private void ImportBatch() { if (_Accounts.Count > 0) { var multipleRequest = new ExecuteMultipleRequest() { Settings = new ExecuteMultipleSettings() { ContinueOnError = true, ReturnResponses = true }, Requests = new OrganizationRequestCollection() }; foreach (var profContact in _Accounts) { CreateRequest reqCreate = new CreateRequest(); reqCreate.Target = profContact; reqCreate.Parameters.Add("SuppressDuplicateDetection", false); multipleRequest.Requests.Add(reqCreate); } ExecuteMultipleResponse multipleResponses = (ExecuteMultipleResponse)organizationservice.Execute(multipleRequest); var responses = (ExecuteMultipleResponseItemCollection)multipleResponses.Results["Responses"]; foreach (var response in responses) { if (response.Fault != null) { // A fault has occurred, handle it here } else { // THIS IS WHERE I KNOW THE GUID VALUE EXIST. } } //IEnumerator f = multipleResponses.Responses.GetEnumerator(); _Accounts.Clear(); } } 

上面的代码工作正常,但是,我现在需要从响应List中读取和存储Guids。 此信息对于包中的下一步至关重要。 我知道,如果我创建单曲,我可以简单地说,

 Guid newRecord = _service.Create(account); 

我甚至设法开始检查响应是否有“故障”,如果没有故障,那么响应中应该存在Guid值。

在QuickWatch中运行response.Response.Results.Values向我展示了guid,但我找不到直接读取它并将其存储为Guid的方法。 在此处输入图像描述

创建记录的guid应该存储在OrganizationResponse ,可以在ExecuteMultipleResponseItem找到。尝试以下方法将guid作为字符串获取:

 string id = response.Response.Results["id"].ToString() 

如果它按预期工作,您还应该能够实例化一个guid,如果需要:

 Guid guid = new Guid(id);