예제 #1
0
 private async Task ProcessObject(object obj)
 {
     CancelProcessToken.ThrowIfCancellationRequested();
     if (obj is string str)
     {
         await Set(str);
     }
     else if (obj is IObjectSummary o)
     {
         await Set(o.GetIdentifier());
     }
     else if (obj is PSObject pso)
     {
         await ProcessObject(pso.BaseObject);
     }
     else if (obj is IEnumerable enumerable)
     {
         foreach (object eo in enumerable)
         {
             await ProcessObject(eo);
         }
     }
     else
     {
         throw new PSArgumentException($"Invalid type: {obj.GetType()}", InputName);
     }
 }
예제 #2
0
 private async Task ProcessObject(object obj)
 {
     CancelProcessToken.ThrowIfCancellationRequested();
     if (obj == null)
     {
         await Session.Discard();
     }
     else if (obj is string str)
     {
         await Session.Discard(str, cancellationToken : CancelProcessToken);
     }
     else if (obj is SessionInfo o)
     {
         await Session.Discard(o.UID, cancellationToken : CancelProcessToken);
     }
     else if (obj is PSObject pso)
     {
         await ProcessObject(pso.BaseObject);
     }
     else if (obj is IEnumerable enumerable)
     {
         foreach (object eo in enumerable)
         {
             await ProcessObject(eo);
         }
     }
     else
     {
         throw new PSArgumentException($"Invalid type: {obj.GetType()}", nameof(ResetSession));
     }
 }