/// <summary>
 /// <c>GetAnswers</c> overlays any answer collections passed into it, into a single XML answer collection.
 /// It has two primary uses: it can be used to combine multiple answer collections into a single
 /// answer collection; and/or it can be used to "resolve" or standardize an answer collection
 /// submitted from a browser interview (which may be specially encoded) into standard XML answers.
 /// </summary>
 /// <param name="answers">A sequence of answer collections. Each member of this sequence
 /// must be either an (encoded) interview answer collection or a regular XML answer collection.
 /// Each member will be successively overlaid (overlapped) on top of the prior members to
 /// form one consolidated answer collection.</param>
 /// <param name="logRef">A string to display in logs related to this request.</param>
 /// <returns></returns>
 public string GetAnswers(IEnumerable<TextReader> answers, string logRef)
 {
     string logStr = logRef == null ? string.Empty : logRef;
     if (answers == null)
         throw new ArgumentNullException("answers", string.Format(@"WebService.Services.GetAnswers: the ""answers"" parameter passed in was null, logRef: {0}", logStr));
     BinaryObject combinedAnswers;
     using (Proxy client = new Proxy(_endPointName))
     {
         var answerObjects = (from answer in answers select Util.GetBinaryObjectFromTextReader(answer)).ToArray();
         combinedAnswers = client.GetAnswers(answerObjects);
         SafeCloseClient(client, logRef);
     }
     return Util.ExtractString(combinedAnswers);
 }