public AsyncResult Retrieve(RetrieveRequest retrieveRequest)
        {
            if (retrieveRequest.unpackaged != null)
                string.Format("apiAccessLevel={0}, apiAccessLevelSpecified={1}, fullName={2}, namespacePrefix={3}, uninstallClass={4}, version={5}, types={6}", 
                    retrieveRequest.unpackaged.apiAccessLevel as object, 
                    retrieveRequest.unpackaged.apiAccessLevelSpecified, 
                    retrieveRequest.unpackaged.fullName, 
                    retrieveRequest.unpackaged.namespacePrefix as object, 
                    retrieveRequest.unpackaged.uninstallClass as object, 
                    retrieveRequest.unpackaged.version as object, 
                    string.Join("|", retrieveRequest.unpackaged.types.Select(type => type.name + ":" + string.Join(",", type.members))) as object);

            return _service.retrieve(retrieveRequest);
        }
 public RetrieveRequest[] ConvertPackageToRequests(PackageEntity package)
 {
     return package.Types.Select(t =>
     {
         RetrieveRequest retrieveRequest = new RetrieveRequest
         {
             apiVersion = double.Parse(package.Version, CultureInfo.InvariantCulture),
             unpackaged = new Package()
             {
                 types = new[]
                 {
                     new PackageTypeMembers()
                     {
                         name = t.Name,
                         members = t.Members
                     }
                 }
             }
         };
         return retrieveRequest;
     }).ToArray();
 }
 /// <remarks/>
 public void retrieveAsync(RetrieveRequest retrieveRequest, object userState)
 {
     if ((this.retrieveOperationCompleted == null))
     {
         this.retrieveOperationCompleted =
             new System.Threading.SendOrPostCallback(this.OnretrieveOperationCompleted);
     }
     this.InvokeAsync("retrieve", new object[]
     {
         retrieveRequest
     }, this.retrieveOperationCompleted, userState);
 }
 /// <remarks/>
 public void retrieveAsync(RetrieveRequest retrieveRequest)
 {
     this.retrieveAsync(retrieveRequest, null);
 }
 /// <remarks/>
 public System.IAsyncResult Beginretrieve(RetrieveRequest retrieveRequest, System.AsyncCallback callback,
     object asyncState)
 {
     return this.BeginInvoke("retrieve", new object[]
     {
         retrieveRequest
     }, callback, asyncState);
 }
 public AsyncResult retrieve(RetrieveRequest retrieveRequest)
 {
     object[] results = this.Invoke("retrieve", new object[]
     {
         retrieveRequest
     });
     return ((AsyncResult) (results[0]));
 }