mirror of
https://github.com/PowerShell/PowerShell
synced 2026-06-08 12:12:50 +00:00
Simplify delegate creation (#13578)
* Autofix RCS1048 * Autofix RCS1021
This commit is contained in:
@@ -791,7 +791,7 @@ namespace Microsoft.Management.Infrastructure.CimCmdlets
|
||||
{
|
||||
this.sessionState = cimSessions.GetOrAdd(
|
||||
CurrentRunspaceId,
|
||||
delegate (Guid instanceId)
|
||||
(Guid instanceId) =>
|
||||
{
|
||||
if (Runspace.DefaultRunspace != null)
|
||||
{
|
||||
|
||||
+13
-12
@@ -151,14 +151,15 @@ namespace Microsoft.PowerShell.Cmdletization
|
||||
discardNonPipelineResults,
|
||||
actionAgainstResults == null
|
||||
? (Action<PSObject>)null
|
||||
: delegate (PSObject pso)
|
||||
{
|
||||
var objectInstance =
|
||||
(TObjectInstance)
|
||||
LanguagePrimitives.ConvertTo(pso, typeof(TObjectInstance),
|
||||
CultureInfo.InvariantCulture);
|
||||
actionAgainstResults(sessionForJob, objectInstance);
|
||||
});
|
||||
: ((PSObject pso) =>
|
||||
{
|
||||
var objectInstance =
|
||||
(TObjectInstance)LanguagePrimitives.ConvertTo(
|
||||
pso,
|
||||
typeof(TObjectInstance),
|
||||
CultureInfo.InvariantCulture);
|
||||
actionAgainstResults(sessionForJob, objectInstance);
|
||||
}));
|
||||
}
|
||||
|
||||
return queryJob;
|
||||
@@ -239,7 +240,7 @@ namespace Microsoft.PowerShell.Cmdletization
|
||||
private void HandleJobOutput(Job job, TSession sessionForJob, bool discardNonPipelineResults, Action<PSObject> outputAction)
|
||||
{
|
||||
Action<PSObject> processOutput =
|
||||
delegate (PSObject pso)
|
||||
(PSObject pso) =>
|
||||
{
|
||||
if (pso == null)
|
||||
{
|
||||
@@ -250,7 +251,7 @@ namespace Microsoft.PowerShell.Cmdletization
|
||||
};
|
||||
|
||||
job.Output.DataAdded +=
|
||||
delegate (object sender, DataAddedEventArgs eventArgs)
|
||||
(object sender, DataAddedEventArgs eventArgs) =>
|
||||
{
|
||||
var dataCollection = (PSDataCollection<PSObject>)sender;
|
||||
|
||||
@@ -300,7 +301,7 @@ namespace Microsoft.PowerShell.Cmdletization
|
||||
private static void DiscardJobOutputs<T>(PSDataCollection<T> psDataCollection)
|
||||
{
|
||||
psDataCollection.DataAdded +=
|
||||
delegate (object sender, DataAddedEventArgs e)
|
||||
(object sender, DataAddedEventArgs e) =>
|
||||
{
|
||||
var localDataCollection = (PSDataCollection<T>)sender;
|
||||
localDataCollection.Clear();
|
||||
@@ -409,7 +410,7 @@ namespace Microsoft.PowerShell.Cmdletization
|
||||
StartableJob queryJob = this.DoCreateQueryJob(
|
||||
sessionForJob,
|
||||
query,
|
||||
delegate (TSession sessionForMethodInvocationJob, TObjectInstance objectInstance)
|
||||
(TSession sessionForMethodInvocationJob, TObjectInstance objectInstance) =>
|
||||
{
|
||||
StartableJob methodInvocationJob = this.DoCreateInstanceMethodInvocationJob(
|
||||
sessionForMethodInvocationJob,
|
||||
|
||||
+18
-18
@@ -175,11 +175,11 @@ namespace Microsoft.PowerShell.Cmdletization.Cim
|
||||
key: terminatedSession,
|
||||
addValue: true,
|
||||
updateValueFactory:
|
||||
delegate (CimSession key, bool isTerminatedValueInDictionary)
|
||||
{
|
||||
closureSafeSessionWasAlreadyTerminated = isTerminatedValueInDictionary;
|
||||
return true;
|
||||
});
|
||||
(CimSession key, bool isTerminatedValueInDictionary) =>
|
||||
{
|
||||
closureSafeSessionWasAlreadyTerminated = isTerminatedValueInDictionary;
|
||||
return true;
|
||||
});
|
||||
|
||||
sessionWasAlreadyTerminated = closureSafeSessionWasAlreadyTerminated;
|
||||
}
|
||||
@@ -198,20 +198,20 @@ namespace Microsoft.PowerShell.Cmdletization.Cim
|
||||
{
|
||||
ManualResetEventSlim manualResetEventSlim = new ManualResetEventSlim();
|
||||
object lockObject = new object();
|
||||
Func<Cmdlet, bool> action = delegate (Cmdlet cmdlet)
|
||||
{
|
||||
_numberOfReportedSessionTerminatingErrors++;
|
||||
if (_numberOfReportedSessionTerminatingErrors >= _numberOfSessions)
|
||||
{
|
||||
cmdlet.ThrowTerminatingError(errorRecord);
|
||||
}
|
||||
else
|
||||
{
|
||||
cmdlet.WriteError(errorRecord);
|
||||
}
|
||||
Func<Cmdlet, bool> action = (Cmdlet cmdlet) =>
|
||||
{
|
||||
_numberOfReportedSessionTerminatingErrors++;
|
||||
if (_numberOfReportedSessionTerminatingErrors >= _numberOfSessions)
|
||||
{
|
||||
cmdlet.ThrowTerminatingError(errorRecord);
|
||||
}
|
||||
else
|
||||
{
|
||||
cmdlet.WriteError(errorRecord);
|
||||
}
|
||||
|
||||
return false; // not really needed here, but required by CmdletMethodInvoker
|
||||
};
|
||||
return false; // not really needed here, but required by CmdletMethodInvoker
|
||||
};
|
||||
|
||||
return new CmdletMethodInvoker<bool>
|
||||
{
|
||||
|
||||
+15
-15
@@ -399,21 +399,21 @@ namespace Microsoft.PowerShell.Cim
|
||||
return dotNetObject;
|
||||
}
|
||||
|
||||
Func<Func<object>, object> exceptionSafeReturn = delegate (Func<object> innerAction)
|
||||
{
|
||||
try
|
||||
{
|
||||
return innerAction();
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
throw CimValueConverter.GetInvalidCastException(
|
||||
e,
|
||||
"InvalidCimToDotNetCast",
|
||||
cimObject,
|
||||
expectedDotNetType.FullName);
|
||||
}
|
||||
};
|
||||
Func<Func<object>, object> exceptionSafeReturn = (Func<object> innerAction) =>
|
||||
{
|
||||
try
|
||||
{
|
||||
return innerAction();
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
throw CimValueConverter.GetInvalidCastException(
|
||||
e,
|
||||
"InvalidCimToDotNetCast",
|
||||
cimObject,
|
||||
expectedDotNetType.FullName);
|
||||
}
|
||||
};
|
||||
|
||||
if (typeof(ObjectSecurity).IsAssignableFrom(expectedDotNetType))
|
||||
{
|
||||
|
||||
@@ -107,18 +107,14 @@ namespace Microsoft.PowerShell.Commands
|
||||
breakpoints = Filter(
|
||||
breakpoints,
|
||||
Id,
|
||||
delegate (Breakpoint breakpoint, int id)
|
||||
{
|
||||
return breakpoint.Id == id;
|
||||
}
|
||||
);
|
||||
(Breakpoint breakpoint, int id) => breakpoint.Id == id);
|
||||
}
|
||||
else if (ParameterSetName.Equals(CommandParameterSetName, StringComparison.OrdinalIgnoreCase))
|
||||
{
|
||||
breakpoints = Filter(
|
||||
breakpoints,
|
||||
Command,
|
||||
delegate (Breakpoint breakpoint, string command)
|
||||
(Breakpoint breakpoint, string command) =>
|
||||
{
|
||||
if (!(breakpoint is CommandBreakpoint commandBreakpoint))
|
||||
{
|
||||
@@ -133,7 +129,7 @@ namespace Microsoft.PowerShell.Commands
|
||||
breakpoints = Filter(
|
||||
breakpoints,
|
||||
Variable,
|
||||
delegate (Breakpoint breakpoint, string variable)
|
||||
(Breakpoint breakpoint, string variable) =>
|
||||
{
|
||||
if (!(breakpoint is VariableBreakpoint variableBreakpoint))
|
||||
{
|
||||
@@ -148,7 +144,7 @@ namespace Microsoft.PowerShell.Commands
|
||||
breakpoints = Filter(
|
||||
breakpoints,
|
||||
Type,
|
||||
delegate (Breakpoint breakpoint, BreakpointType type)
|
||||
(Breakpoint breakpoint, BreakpointType type) =>
|
||||
{
|
||||
switch (type)
|
||||
{
|
||||
@@ -191,7 +187,7 @@ namespace Microsoft.PowerShell.Commands
|
||||
breakpoints = Filter(
|
||||
breakpoints,
|
||||
Script,
|
||||
delegate (Breakpoint breakpoint, string script)
|
||||
(Breakpoint breakpoint, string script) =>
|
||||
{
|
||||
if (breakpoint.Script == null)
|
||||
{
|
||||
|
||||
@@ -181,10 +181,7 @@ namespace Microsoft.PowerShell.Commands
|
||||
}
|
||||
|
||||
results.Sort(
|
||||
delegate (AliasInfo left, AliasInfo right)
|
||||
{
|
||||
return StringComparer.CurrentCultureIgnoreCase.Compare(left.Name, right.Name);
|
||||
});
|
||||
(AliasInfo left, AliasInfo right) => StringComparer.CurrentCultureIgnoreCase.Compare(left.Name, right.Name));
|
||||
foreach (AliasInfo alias in results)
|
||||
{
|
||||
this.WriteObject(alias);
|
||||
|
||||
+2
-2
@@ -1046,7 +1046,7 @@ namespace Microsoft.PowerShell.Commands
|
||||
{
|
||||
if (itemRehydrator == null)
|
||||
{
|
||||
itemRehydrator = delegate (PSObject pso) { return ConvertTo<T>(commandName, pso); };
|
||||
itemRehydrator = (PSObject pso) => ConvertTo<T>(commandName, pso);
|
||||
}
|
||||
|
||||
List<T> result = null;
|
||||
@@ -1073,7 +1073,7 @@ namespace Microsoft.PowerShell.Commands
|
||||
|
||||
if (valueRehydrator == null)
|
||||
{
|
||||
valueRehydrator = delegate (PSObject pso) { return ConvertTo<V>(commandName, pso); };
|
||||
valueRehydrator = (PSObject pso) => ConvertTo<V>(commandName, pso);
|
||||
}
|
||||
|
||||
Dictionary<K, V> result = new Dictionary<K, V>();
|
||||
|
||||
@@ -337,10 +337,7 @@ namespace Microsoft.PowerShell.Commands
|
||||
GetMatchingVariables(varName, Scope, out wasFiltered, /*quiet*/ false);
|
||||
|
||||
matchingVariables.Sort(
|
||||
delegate (PSVariable left, PSVariable right)
|
||||
{
|
||||
return StringComparer.CurrentCultureIgnoreCase.Compare(left.Name, right.Name);
|
||||
});
|
||||
(PSVariable left, PSVariable right) => StringComparer.CurrentCultureIgnoreCase.Compare(left.Name, right.Name));
|
||||
|
||||
bool matchFound = false;
|
||||
foreach (PSVariable matchingVariable in matchingVariables)
|
||||
|
||||
@@ -1137,11 +1137,11 @@ namespace System.Management.Automation
|
||||
return null;
|
||||
}
|
||||
|
||||
result.Sort(delegate (PathItemAndConvertedPath x, PathItemAndConvertedPath y)
|
||||
{
|
||||
Diagnostics.Assert(x.Path != null && y.Path != null, "SafeToString always returns a non-null string");
|
||||
return string.Compare(x.Path, y.Path, StringComparison.CurrentCultureIgnoreCase);
|
||||
});
|
||||
result.Sort((PathItemAndConvertedPath x, PathItemAndConvertedPath y) =>
|
||||
{
|
||||
Diagnostics.Assert(x.Path != null && y.Path != null, "SafeToString always returns a non-null string");
|
||||
return string.Compare(x.Path, y.Path, StringComparison.CurrentCultureIgnoreCase);
|
||||
});
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
@@ -1204,21 +1204,21 @@ namespace System.Management.Automation
|
||||
|
||||
private void ToPSObjectForRemoting(PSObject dest, bool serializeExtInfo)
|
||||
{
|
||||
RemotingEncoder.AddNoteProperty<Exception>(dest, "Exception", delegate () { return Exception; });
|
||||
RemotingEncoder.AddNoteProperty<object>(dest, "TargetObject", delegate () { return TargetObject; });
|
||||
RemotingEncoder.AddNoteProperty<string>(dest, "FullyQualifiedErrorId", delegate () { return FullyQualifiedErrorId; });
|
||||
RemotingEncoder.AddNoteProperty<InvocationInfo>(dest, "InvocationInfo", delegate () { return InvocationInfo; });
|
||||
RemotingEncoder.AddNoteProperty<int>(dest, "ErrorCategory_Category", delegate () { return (int)CategoryInfo.Category; });
|
||||
RemotingEncoder.AddNoteProperty<string>(dest, "ErrorCategory_Activity", delegate () { return CategoryInfo.Activity; });
|
||||
RemotingEncoder.AddNoteProperty<string>(dest, "ErrorCategory_Reason", delegate () { return CategoryInfo.Reason; });
|
||||
RemotingEncoder.AddNoteProperty<string>(dest, "ErrorCategory_TargetName", delegate () { return CategoryInfo.TargetName; });
|
||||
RemotingEncoder.AddNoteProperty<string>(dest, "ErrorCategory_TargetType", delegate () { return CategoryInfo.TargetType; });
|
||||
RemotingEncoder.AddNoteProperty<string>(dest, "ErrorCategory_Message", delegate () { return CategoryInfo.GetMessage(CultureInfo.CurrentCulture); });
|
||||
RemotingEncoder.AddNoteProperty<Exception>(dest, "Exception", () => Exception);
|
||||
RemotingEncoder.AddNoteProperty<object>(dest, "TargetObject", () => TargetObject);
|
||||
RemotingEncoder.AddNoteProperty<string>(dest, "FullyQualifiedErrorId", () => FullyQualifiedErrorId);
|
||||
RemotingEncoder.AddNoteProperty<InvocationInfo>(dest, "InvocationInfo", () => InvocationInfo);
|
||||
RemotingEncoder.AddNoteProperty<int>(dest, "ErrorCategory_Category", () => (int)CategoryInfo.Category);
|
||||
RemotingEncoder.AddNoteProperty<string>(dest, "ErrorCategory_Activity", () => CategoryInfo.Activity);
|
||||
RemotingEncoder.AddNoteProperty<string>(dest, "ErrorCategory_Reason", () => CategoryInfo.Reason);
|
||||
RemotingEncoder.AddNoteProperty<string>(dest, "ErrorCategory_TargetName", () => CategoryInfo.TargetName);
|
||||
RemotingEncoder.AddNoteProperty<string>(dest, "ErrorCategory_TargetType", () => CategoryInfo.TargetType);
|
||||
RemotingEncoder.AddNoteProperty<string>(dest, "ErrorCategory_Message", () => CategoryInfo.GetMessage(CultureInfo.CurrentCulture));
|
||||
|
||||
if (ErrorDetails != null)
|
||||
{
|
||||
RemotingEncoder.AddNoteProperty<string>(dest, "ErrorDetails_Message", delegate () { return ErrorDetails.Message; });
|
||||
RemotingEncoder.AddNoteProperty<string>(dest, "ErrorDetails_RecommendedAction", delegate () { return ErrorDetails.RecommendedAction; });
|
||||
RemotingEncoder.AddNoteProperty<string>(dest, "ErrorDetails_Message", () => ErrorDetails.Message);
|
||||
RemotingEncoder.AddNoteProperty<string>(dest, "ErrorDetails_RecommendedAction", () => ErrorDetails.RecommendedAction);
|
||||
}
|
||||
|
||||
if (!serializeExtInfo || this.InvocationInfo == null)
|
||||
@@ -1229,12 +1229,12 @@ namespace System.Management.Automation
|
||||
{
|
||||
RemotingEncoder.AddNoteProperty(dest, "SerializeExtendedInfo", () => true);
|
||||
this.InvocationInfo.ToPSObjectForRemoting(dest);
|
||||
RemotingEncoder.AddNoteProperty<object>(dest, "PipelineIterationInfo", delegate () { return PipelineIterationInfo; });
|
||||
RemotingEncoder.AddNoteProperty<object>(dest, "PipelineIterationInfo", () => PipelineIterationInfo);
|
||||
}
|
||||
|
||||
if (!string.IsNullOrEmpty(this.ScriptStackTrace))
|
||||
{
|
||||
RemotingEncoder.AddNoteProperty(dest, "ErrorDetails_ScriptStackTrace", delegate () { return this.ScriptStackTrace; });
|
||||
RemotingEncoder.AddNoteProperty(dest, "ErrorDetails_ScriptStackTrace", () => this.ScriptStackTrace);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -953,11 +953,7 @@ namespace System.Management.Automation
|
||||
}
|
||||
else
|
||||
{
|
||||
ThreadPool.QueueUserWorkItem(new WaitCallback(
|
||||
delegate (object unused)
|
||||
{
|
||||
ProcessNewEventImplementation(newEvent, false);
|
||||
}));
|
||||
ThreadPool.QueueUserWorkItem(new WaitCallback((_) => ProcessNewEventImplementation(newEvent, false)));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1137,7 +1133,7 @@ namespace System.Management.Automation
|
||||
// teardown event. That can result in starvation of
|
||||
// foreground threads that also want to use the runspace.
|
||||
ThreadPool.QueueUserWorkItem(new WaitCallback(
|
||||
delegate (object unused)
|
||||
(_) =>
|
||||
{
|
||||
System.Threading.Thread.Sleep(100);
|
||||
this.PulseEngine();
|
||||
|
||||
@@ -45,10 +45,7 @@ namespace System.Management.Automation.Runspaces
|
||||
// We shouldn't create too many tasks.
|
||||
#if !UNIX
|
||||
// Amsi initialize can be a little slow
|
||||
Task.Run(() =>
|
||||
{
|
||||
AmsiUtils.WinScanContent(content: string.Empty, sourceMetadata: string.Empty, warmUp: true);
|
||||
});
|
||||
Task.Run(() => AmsiUtils.WinScanContent(content: string.Empty, sourceMetadata: string.Empty, warmUp: true));
|
||||
#endif
|
||||
|
||||
// One other task for other stuff that's faster, but still a little slow.
|
||||
|
||||
@@ -455,10 +455,7 @@ namespace Microsoft.PowerShell.Commands
|
||||
_taskCollection = new PSDataCollection<System.Management.Automation.PSTasks.PSTask>();
|
||||
_taskDataStreamWriter = new PSTaskDataStreamWriter(this);
|
||||
_taskPool = new PSTaskPool(ThrottleLimit, UseNewRunspace);
|
||||
_taskPool.PoolComplete += (sender, args) =>
|
||||
{
|
||||
_taskDataStreamWriter.Close();
|
||||
};
|
||||
_taskPool.PoolComplete += (sender, args) => _taskDataStreamWriter.Close();
|
||||
|
||||
// Create timeout timer if requested.
|
||||
if (TimeoutSeconds != 0)
|
||||
|
||||
@@ -1823,11 +1823,11 @@ namespace Microsoft.PowerShell.Commands
|
||||
ApplicationInsightsTelemetry.SendTelemetryMetric(TelemetryType.ModuleLoad, module.Name);
|
||||
RemoteDiscoveryHelper.DispatchModuleInfoProcessing(
|
||||
module,
|
||||
localAction: delegate ()
|
||||
{
|
||||
ImportModule_ViaLocalModuleInfo(importModuleOptions, module);
|
||||
SetModuleBaseForEngineModules(module.Name, this.Context);
|
||||
},
|
||||
localAction: () =>
|
||||
{
|
||||
ImportModule_ViaLocalModuleInfo(importModuleOptions, module);
|
||||
SetModuleBaseForEngineModules(module.Name, this.Context);
|
||||
},
|
||||
|
||||
cimSessionAction: (cimSession, resourceUri, cimNamespace) => ImportModule_RemotelyViaCimSession(
|
||||
importModuleOptions,
|
||||
|
||||
@@ -1450,7 +1450,7 @@ namespace System.Management.Automation
|
||||
Dbg.Assert(input != null, "Caller should verify that input != null");
|
||||
|
||||
input.Sort(
|
||||
delegate (T x, T y)
|
||||
(T x, T y) =>
|
||||
{
|
||||
string kx = keyGetter(x);
|
||||
string ky = keyGetter(y);
|
||||
@@ -1527,7 +1527,7 @@ namespace System.Management.Automation
|
||||
}
|
||||
}
|
||||
|
||||
SortAndRemoveDuplicates(sessionState.ExportedFunctions, delegate (FunctionInfo ci) { return ci.Name; });
|
||||
SortAndRemoveDuplicates(sessionState.ExportedFunctions, (FunctionInfo ci) => ci.Name);
|
||||
}
|
||||
|
||||
if (cmdletPatterns != null)
|
||||
@@ -1582,7 +1582,7 @@ namespace System.Management.Automation
|
||||
}
|
||||
}
|
||||
|
||||
SortAndRemoveDuplicates(sessionState.Module.CompiledExports, delegate (CmdletInfo ci) { return ci.Name; });
|
||||
SortAndRemoveDuplicates(sessionState.Module.CompiledExports, (CmdletInfo ci) => ci.Name);
|
||||
}
|
||||
|
||||
if (variablePatterns != null)
|
||||
@@ -1605,7 +1605,7 @@ namespace System.Management.Automation
|
||||
}
|
||||
}
|
||||
|
||||
SortAndRemoveDuplicates(sessionState.ExportedVariables, delegate (PSVariable v) { return v.Name; });
|
||||
SortAndRemoveDuplicates(sessionState.ExportedVariables, (PSVariable v) => v.Name);
|
||||
}
|
||||
|
||||
if (aliasPatterns != null)
|
||||
@@ -1645,7 +1645,7 @@ namespace System.Management.Automation
|
||||
}
|
||||
}
|
||||
|
||||
SortAndRemoveDuplicates(sessionState.ExportedAliases, delegate (AliasInfo ci) { return ci.Name; });
|
||||
SortAndRemoveDuplicates(sessionState.ExportedAliases, (AliasInfo ci) => ci.Name);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1188,7 +1188,7 @@ namespace Microsoft.PowerShell.Commands
|
||||
BuildModuleManifest(result, nameof(IconUri), Modules.IconUri, IconUri != null, () => QuoteName(IconUri), streamWriter);
|
||||
BuildModuleManifest(result, nameof(ReleaseNotes), Modules.ReleaseNotes, !string.IsNullOrEmpty(ReleaseNotes), () => QuoteName(ReleaseNotes), streamWriter);
|
||||
BuildModuleManifest(result, nameof(Prerelease), Modules.Prerelease, !string.IsNullOrEmpty(Prerelease), () => QuoteName(Prerelease), streamWriter);
|
||||
BuildModuleManifest(result, nameof(RequireLicenseAcceptance), Modules.RequireLicenseAcceptance, RequireLicenseAcceptance.IsPresent, () => { return RequireLicenseAcceptance.IsPresent ? "$true" : "$false"; }, streamWriter);
|
||||
BuildModuleManifest(result, nameof(RequireLicenseAcceptance), Modules.RequireLicenseAcceptance, RequireLicenseAcceptance.IsPresent, () => RequireLicenseAcceptance.IsPresent ? "$true" : "$false", streamWriter);
|
||||
BuildModuleManifest(result, nameof(ExternalModuleDependencies), Modules.ExternalModuleDependencies, ExternalModuleDependencies != null && ExternalModuleDependencies.Length > 0, () => QuoteNames(ExternalModuleDependencies, streamWriter), streamWriter);
|
||||
|
||||
result.Append(" } ");
|
||||
|
||||
@@ -112,24 +112,24 @@ namespace System.Management.Automation
|
||||
private static EventHandler<DataAddedEventArgs> GetStreamForwarder<T>(Action<T> forwardingAction, bool swallowInvalidOperationExceptions = false)
|
||||
{
|
||||
// TODO/FIXME: ETW event for extended semantics streams
|
||||
return delegate (object sender, DataAddedEventArgs eventArgs)
|
||||
{
|
||||
var psDataCollection = (PSDataCollection<T>)sender;
|
||||
foreach (T t in psDataCollection.ReadAll())
|
||||
{
|
||||
try
|
||||
{
|
||||
forwardingAction(t);
|
||||
}
|
||||
catch (InvalidOperationException)
|
||||
{
|
||||
if (!swallowInvalidOperationExceptions)
|
||||
{
|
||||
throw;
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
return (object sender, DataAddedEventArgs eventArgs) =>
|
||||
{
|
||||
var psDataCollection = (PSDataCollection<T>)sender;
|
||||
foreach (T t in psDataCollection.ReadAll())
|
||||
{
|
||||
try
|
||||
{
|
||||
forwardingAction(t);
|
||||
}
|
||||
catch (InvalidOperationException)
|
||||
{
|
||||
if (!swallowInvalidOperationExceptions)
|
||||
{
|
||||
throw;
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
// This is a static field (instead of a constant) to make it possible to set through tests (and/or by customers if needed for a workaround)
|
||||
@@ -151,7 +151,7 @@ namespace System.Management.Automation
|
||||
|
||||
EventHandler<DataAddedEventArgs> errorHandler = GetStreamForwarder<ErrorRecord>(
|
||||
errorRecord => mergedOutput.Add(
|
||||
delegate (PSCmdlet c)
|
||||
(PSCmdlet c) =>
|
||||
{
|
||||
errorRecord = GetErrorRecordForRemotePipelineInvocation(errorRecord, errorMessageTemplate);
|
||||
HandleErrorFromPipeline(c, errorRecord, powerShell);
|
||||
@@ -161,7 +161,7 @@ namespace System.Management.Automation
|
||||
|
||||
EventHandler<DataAddedEventArgs> warningHandler = GetStreamForwarder<WarningRecord>(
|
||||
warningRecord => mergedOutput.Add(
|
||||
delegate (PSCmdlet c)
|
||||
(PSCmdlet c) =>
|
||||
{
|
||||
c.WriteWarning(warningRecord.Message);
|
||||
return Enumerable.Empty<PSObject>();
|
||||
@@ -170,7 +170,7 @@ namespace System.Management.Automation
|
||||
|
||||
EventHandler<DataAddedEventArgs> verboseHandler = GetStreamForwarder<VerboseRecord>(
|
||||
verboseRecord => mergedOutput.Add(
|
||||
delegate (PSCmdlet c)
|
||||
(PSCmdlet c) =>
|
||||
{
|
||||
c.WriteVerbose(verboseRecord.Message);
|
||||
return Enumerable.Empty<PSObject>();
|
||||
@@ -179,7 +179,7 @@ namespace System.Management.Automation
|
||||
|
||||
EventHandler<DataAddedEventArgs> debugHandler = GetStreamForwarder<DebugRecord>(
|
||||
debugRecord => mergedOutput.Add(
|
||||
delegate (PSCmdlet c)
|
||||
(PSCmdlet c) =>
|
||||
{
|
||||
c.WriteDebug(debugRecord.Message);
|
||||
return Enumerable.Empty<PSObject>();
|
||||
@@ -188,7 +188,7 @@ namespace System.Management.Automation
|
||||
|
||||
EventHandler<DataAddedEventArgs> informationHandler = GetStreamForwarder<InformationRecord>(
|
||||
informationRecord => mergedOutput.Add(
|
||||
delegate (PSCmdlet c)
|
||||
(PSCmdlet c) =>
|
||||
{
|
||||
c.WriteInformation(informationRecord);
|
||||
return Enumerable.Empty<PSObject>();
|
||||
@@ -262,7 +262,7 @@ namespace System.Management.Automation
|
||||
CancellationToken cancellationToken)
|
||||
{
|
||||
EventHandler<DataAddedEventArgs> errorHandler = GetStreamForwarder<ErrorRecord>(
|
||||
delegate (ErrorRecord errorRecord)
|
||||
(ErrorRecord errorRecord) =>
|
||||
{
|
||||
errorRecord = GetErrorRecordForRemotePipelineInvocation(errorRecord, errorMessageTemplate);
|
||||
HandleErrorFromPipeline(cmdlet, errorRecord, powerShell);
|
||||
@@ -486,7 +486,7 @@ namespace System.Management.Automation
|
||||
|
||||
return EnumerateWithCatch(
|
||||
outputStream,
|
||||
delegate (Exception exception)
|
||||
(Exception exception) =>
|
||||
{
|
||||
ErrorRecord errorRecord = GetErrorRecordForRemotePipelineInvocation(exception, errorMessageTemplate);
|
||||
HandleErrorFromPipeline(cmdlet, errorRecord, powerShell);
|
||||
@@ -801,7 +801,7 @@ namespace System.Management.Automation
|
||||
if (!onlyManifests)
|
||||
{
|
||||
cimModules = cimModules.Select(
|
||||
delegate (CimModule cimModule)
|
||||
(CimModule cimModule) =>
|
||||
{
|
||||
cimModule.FetchAllModuleFiles(cimSession, cimNamespace, options);
|
||||
return cimModule;
|
||||
@@ -810,7 +810,7 @@ namespace System.Management.Automation
|
||||
|
||||
return EnumerateWithCatch(
|
||||
cimModules,
|
||||
delegate (Exception exception)
|
||||
(Exception exception) =>
|
||||
{
|
||||
ErrorRecord errorRecord = GetErrorRecordForRemoteDiscoveryProvider(exception);
|
||||
if (!cmdlet.MyInvocation.ExpectingInput)
|
||||
|
||||
@@ -335,10 +335,7 @@ namespace System.Management.Automation
|
||||
|
||||
List<string> commandsToPostFilter = new List<string>();
|
||||
|
||||
Action<string> onEachCommand = importedCommandName =>
|
||||
{
|
||||
commandsToPostFilter.Add(importedCommandName);
|
||||
};
|
||||
Action<string> onEachCommand = importedCommandName => commandsToPostFilter.Add(importedCommandName);
|
||||
|
||||
// Process any exports from the module that we determine from
|
||||
// the -Function, -Cmdlet, or -Alias parameters
|
||||
|
||||
@@ -92,20 +92,20 @@ namespace System.Management.Automation
|
||||
Text.StringBuilder result = new Text.StringBuilder();
|
||||
|
||||
GenerateParametersInDisplayOrder(
|
||||
parameter => AppendFormatCommandParameterInfo(parameter, result),
|
||||
delegate (string str)
|
||||
{
|
||||
if (result.Length > 0)
|
||||
{
|
||||
result.Append(' ');
|
||||
}
|
||||
parameter => AppendFormatCommandParameterInfo(parameter, result),
|
||||
(string str) =>
|
||||
{
|
||||
if (result.Length > 0)
|
||||
{
|
||||
result.Append(' ');
|
||||
}
|
||||
|
||||
result.Append('[');
|
||||
result.Append(str);
|
||||
result.Append(']');
|
||||
});
|
||||
result.Append('[');
|
||||
result.Append(str);
|
||||
result.Append(']');
|
||||
});
|
||||
|
||||
return result.ToString();
|
||||
return result.ToString();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
||||
@@ -4861,19 +4861,18 @@ namespace System.Management.Automation
|
||||
|
||||
StatementAst debugStatement = null;
|
||||
StatementAst callingStatement = _parentScriptBlockAst.Find(
|
||||
ast =>
|
||||
{ return ((ast is StatementAst) && (ast.Extent.StartLineNumber == callingLineNumber)); }
|
||||
|
||||
, true) as StatementAst;
|
||||
ast => ast is StatementAst && (ast.Extent.StartLineNumber == callingLineNumber), true) as StatementAst;
|
||||
|
||||
if (callingStatement != null)
|
||||
{
|
||||
// Find first statement in calling statement.
|
||||
StatementAst firstStatement = callingStatement.Find(ast => { return ((ast is StatementAst) && ast.Extent.StartLineNumber > callingLineNumber); }, true) as StatementAst;
|
||||
StatementAst firstStatement = callingStatement.Find(
|
||||
ast => ast is StatementAst && ast.Extent.StartLineNumber > callingLineNumber, true) as StatementAst;
|
||||
if (firstStatement != null)
|
||||
{
|
||||
int adjustedLineNumber = firstStatement.Extent.StartLineNumber + debugLineNumber - 1;
|
||||
debugStatement = callingStatement.Find(ast => { return ((ast is StatementAst) && ast.Extent.StartLineNumber == adjustedLineNumber); }, true) as StatementAst;
|
||||
debugStatement = callingStatement.Find(
|
||||
ast => ast is StatementAst && ast.Extent.StartLineNumber == adjustedLineNumber, true) as StatementAst;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -924,12 +924,13 @@ namespace System.Management.Automation.Runspaces
|
||||
Tuple<WaitHandle[], ManualResetEvent> stateInfo = new Tuple<WaitHandle[], ManualResetEvent>(waitHandles, waitAllIsDone);
|
||||
|
||||
ThreadPool.QueueUserWorkItem(new WaitCallback(
|
||||
delegate (object state)
|
||||
{
|
||||
var tuple = (Tuple<WaitHandle[], ManualResetEvent>)state;
|
||||
WaitHandle.WaitAll(tuple.Item1);
|
||||
tuple.Item2.Set();
|
||||
}), stateInfo);
|
||||
(object state) =>
|
||||
{
|
||||
var tuple = (Tuple<WaitHandle[], ManualResetEvent>)state;
|
||||
WaitHandle.WaitAll(tuple.Item1);
|
||||
tuple.Item2.Set();
|
||||
}),
|
||||
stateInfo);
|
||||
return waitAllIsDone.WaitOne();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1098,12 +1098,12 @@ namespace Microsoft.PowerShell.Commands
|
||||
{
|
||||
ps.AddScript(commandToInvoke);
|
||||
|
||||
EventHandler<DataAddedEventArgs> debugAdded = delegate (object sender, DataAddedEventArgs e) { DebugRecord record = (DebugRecord)((PSDataCollection<DebugRecord>)sender)[e.Index]; WriteDebug(record.Message); };
|
||||
EventHandler<DataAddedEventArgs> errorAdded = delegate (object sender, DataAddedEventArgs e) { ErrorRecord record = (ErrorRecord)((PSDataCollection<ErrorRecord>)sender)[e.Index]; WriteError(record); };
|
||||
EventHandler<DataAddedEventArgs> informationAdded = delegate (object sender, DataAddedEventArgs e) { InformationRecord record = (InformationRecord)((PSDataCollection<InformationRecord>)sender)[e.Index]; WriteInformation(record); };
|
||||
EventHandler<DataAddedEventArgs> progressAdded = delegate (object sender, DataAddedEventArgs e) { ProgressRecord record = (ProgressRecord)((PSDataCollection<ProgressRecord>)sender)[e.Index]; WriteProgress(record); };
|
||||
EventHandler<DataAddedEventArgs> verboseAdded = delegate (object sender, DataAddedEventArgs e) { VerboseRecord record = (VerboseRecord)((PSDataCollection<VerboseRecord>)sender)[e.Index]; WriteVerbose(record.Message); };
|
||||
EventHandler<DataAddedEventArgs> warningAdded = delegate (object sender, DataAddedEventArgs e) { WarningRecord record = (WarningRecord)((PSDataCollection<WarningRecord>)sender)[e.Index]; WriteWarning(record.Message); };
|
||||
EventHandler<DataAddedEventArgs> debugAdded = (object sender, DataAddedEventArgs e) => { DebugRecord record = (DebugRecord)((PSDataCollection<DebugRecord>)sender)[e.Index]; WriteDebug(record.Message); };
|
||||
EventHandler<DataAddedEventArgs> errorAdded = (object sender, DataAddedEventArgs e) => { ErrorRecord record = (ErrorRecord)((PSDataCollection<ErrorRecord>)sender)[e.Index]; WriteError(record); };
|
||||
EventHandler<DataAddedEventArgs> informationAdded = (object sender, DataAddedEventArgs e) => { InformationRecord record = (InformationRecord)((PSDataCollection<InformationRecord>)sender)[e.Index]; WriteInformation(record); };
|
||||
EventHandler<DataAddedEventArgs> progressAdded = (object sender, DataAddedEventArgs e) => { ProgressRecord record = (ProgressRecord)((PSDataCollection<ProgressRecord>)sender)[e.Index]; WriteProgress(record); };
|
||||
EventHandler<DataAddedEventArgs> verboseAdded = (object sender, DataAddedEventArgs e) => { VerboseRecord record = (VerboseRecord)((PSDataCollection<VerboseRecord>)sender)[e.Index]; WriteVerbose(record.Message); };
|
||||
EventHandler<DataAddedEventArgs> warningAdded = (object sender, DataAddedEventArgs e) => { WarningRecord record = (WarningRecord)((PSDataCollection<WarningRecord>)sender)[e.Index]; WriteWarning(record.Message); };
|
||||
|
||||
ps.Streams.Debug.DataAdded += debugAdded;
|
||||
ps.Streams.Error.DataAdded += errorAdded;
|
||||
|
||||
@@ -950,10 +950,7 @@ namespace System.Management.Automation.Runspaces
|
||||
using (ManualResetEvent remoteRunspaceCloseCompleted = new ManualResetEvent(false))
|
||||
{
|
||||
ThrottleManager throttleManager = new ThrottleManager();
|
||||
throttleManager.ThrottleComplete += delegate (object sender, EventArgs e)
|
||||
{
|
||||
remoteRunspaceCloseCompleted.Set();
|
||||
};
|
||||
throttleManager.ThrottleComplete += (object sender, EventArgs e) => remoteRunspaceCloseCompleted.Set();
|
||||
|
||||
foreach (RemoteRunspace remoteRunspace in runspaces)
|
||||
{
|
||||
@@ -979,10 +976,7 @@ namespace System.Management.Automation.Runspaces
|
||||
using (ManualResetEvent jobsStopCompleted = new ManualResetEvent(false))
|
||||
{
|
||||
ThrottleManager throttleManager = new ThrottleManager();
|
||||
throttleManager.ThrottleComplete += delegate (object sender, EventArgs e)
|
||||
{
|
||||
jobsStopCompleted.Set();
|
||||
};
|
||||
throttleManager.ThrottleComplete += (object sender, EventArgs e) => jobsStopCompleted.Set();
|
||||
|
||||
foreach (Job job in this.JobRepository.Jobs)
|
||||
{
|
||||
@@ -1016,10 +1010,7 @@ namespace System.Management.Automation.Runspaces
|
||||
}
|
||||
|
||||
// Disconnect all disconnectable job runspaces found.
|
||||
CloseOrDisconnectAllRemoteRunspaces(() =>
|
||||
{
|
||||
return disconnectRunspaces;
|
||||
});
|
||||
CloseOrDisconnectAllRemoteRunspaces(() => disconnectRunspaces);
|
||||
}
|
||||
|
||||
internal void ReleaseDebugger()
|
||||
|
||||
@@ -156,7 +156,7 @@ namespace System.Management.Automation.Remoting
|
||||
// If error-stream is null or we are in pushed-runspace - then write error directly to console.
|
||||
if (errorStream == null || IsRunspacePushed(_clientHost))
|
||||
{
|
||||
writeErrorAction = delegate (ErrorRecord errorRecord)
|
||||
writeErrorAction = (ErrorRecord errorRecord) =>
|
||||
{
|
||||
try
|
||||
{
|
||||
@@ -175,10 +175,7 @@ namespace System.Management.Automation.Remoting
|
||||
// Otherwise write it to error-stream.
|
||||
else
|
||||
{
|
||||
writeErrorAction = delegate (ErrorRecord errorRecord)
|
||||
{
|
||||
errorStream.Write(errorRecord);
|
||||
};
|
||||
writeErrorAction = (ErrorRecord errorRecord) => errorStream.Write(errorRecord);
|
||||
}
|
||||
|
||||
this.Execute(writeErrorAction);
|
||||
|
||||
@@ -785,12 +785,12 @@ namespace System.Management.Automation
|
||||
{
|
||||
this.Error.Add(errorRecord);
|
||||
this.InvokeCmdletMethodAndWaitForResults<object>(
|
||||
delegate (Cmdlet cmdlet)
|
||||
{
|
||||
this.WriteError(cmdlet, errorRecord);
|
||||
return null;
|
||||
},
|
||||
out exceptionThrownOnCmdletThread);
|
||||
(Cmdlet cmdlet) =>
|
||||
{
|
||||
this.WriteError(cmdlet, errorRecord);
|
||||
return null;
|
||||
},
|
||||
out exceptionThrownOnCmdletThread);
|
||||
}
|
||||
|
||||
internal virtual void WriteWarning(string message)
|
||||
@@ -856,15 +856,15 @@ namespace System.Management.Automation
|
||||
string caption)
|
||||
{
|
||||
InvokeCmdletMethodAndIgnoreResults(
|
||||
delegate (Cmdlet cmdlet)
|
||||
{
|
||||
ShouldProcessReason throwAwayProcessReason;
|
||||
cmdlet.ShouldProcess(
|
||||
verboseDescription,
|
||||
verboseWarning,
|
||||
caption,
|
||||
out throwAwayProcessReason);
|
||||
});
|
||||
(Cmdlet cmdlet) =>
|
||||
{
|
||||
ShouldProcessReason throwAwayProcessReason;
|
||||
cmdlet.ShouldProcess(
|
||||
verboseDescription,
|
||||
verboseWarning,
|
||||
caption,
|
||||
out throwAwayProcessReason);
|
||||
});
|
||||
}
|
||||
|
||||
internal virtual bool ShouldProcess(
|
||||
@@ -893,7 +893,7 @@ namespace System.Management.Automation
|
||||
object resultsLock = new object();
|
||||
CmdletMethodInvoker<object> methodInvoker = new CmdletMethodInvoker<object>
|
||||
{
|
||||
Action = delegate (Cmdlet cmdlet) { invokeCmdletMethod(cmdlet); return null; },
|
||||
Action = (Cmdlet cmdlet) => { invokeCmdletMethod(cmdlet); return null; },
|
||||
Finished = null,
|
||||
SyncObject = resultsLock
|
||||
};
|
||||
@@ -910,18 +910,18 @@ namespace System.Management.Automation
|
||||
using (var gotResultEvent = new ManualResetEventSlim(false))
|
||||
{
|
||||
EventHandler<JobStateEventArgs> stateChangedEventHandler =
|
||||
delegate (object sender, JobStateEventArgs eventArgs)
|
||||
(object sender, JobStateEventArgs eventArgs) =>
|
||||
{
|
||||
if (IsFinishedState(eventArgs.JobStateInfo.State) || eventArgs.JobStateInfo.State == JobState.Stopping)
|
||||
{
|
||||
if (IsFinishedState(eventArgs.JobStateInfo.State) || eventArgs.JobStateInfo.State == JobState.Stopping)
|
||||
lock (resultsLock)
|
||||
{
|
||||
lock (resultsLock)
|
||||
{
|
||||
closureSafeExceptionThrownOnCmdletThread = new OperationCanceledException();
|
||||
}
|
||||
|
||||
gotResultEvent.Set();
|
||||
closureSafeExceptionThrownOnCmdletThread = new OperationCanceledException();
|
||||
}
|
||||
};
|
||||
|
||||
gotResultEvent.Set();
|
||||
}
|
||||
};
|
||||
this.StateChanged += stateChangedEventHandler;
|
||||
Interlocked.MemoryBarrier();
|
||||
try
|
||||
@@ -2023,10 +2023,7 @@ namespace System.Management.Automation
|
||||
using (ManualResetEvent connectResult = new ManualResetEvent(false))
|
||||
{
|
||||
EventHandler<EventArgs> throttleCompleteEventHandler =
|
||||
delegate (object sender, EventArgs eventArgs)
|
||||
{
|
||||
connectResult.Set();
|
||||
};
|
||||
(object sender, EventArgs eventArgs) => connectResult.Set();
|
||||
|
||||
connectThrottleManager.ThrottleComplete += throttleCompleteEventHandler;
|
||||
try
|
||||
|
||||
@@ -1373,7 +1373,7 @@ namespace System.Management.Automation.Internal
|
||||
_sessionClosedReason = sessionCloseReason;
|
||||
|
||||
// wait for the close to complete and then dispose the transport manager
|
||||
TransportManager.CloseCompleted += delegate (object source, EventArgs args)
|
||||
TransportManager.CloseCompleted += (object source, EventArgs args) =>
|
||||
{
|
||||
if (CloseCompleted != null)
|
||||
{
|
||||
|
||||
@@ -691,10 +691,7 @@ namespace Microsoft.PowerShell.Commands
|
||||
// and this particular method may be called on a thread that
|
||||
// is different from Pipeline Execution Thread. Hence using
|
||||
// a delegate to perform the WriteObject.
|
||||
Action<Cmdlet> outputWriter = delegate (Cmdlet cmdlet)
|
||||
{
|
||||
cmdlet.WriteObject(outSession);
|
||||
};
|
||||
Action<Cmdlet> outputWriter = (Cmdlet cmdlet) => cmdlet.WriteObject(outSession);
|
||||
_writeStream.ObjectWriter.Write(outputWriter);
|
||||
}
|
||||
}
|
||||
@@ -728,10 +725,7 @@ namespace Microsoft.PowerShell.Commands
|
||||
}
|
||||
|
||||
ErrorRecord errorRecord = new ErrorRecord(reason, FQEID, ErrorCategory.InvalidOperation, null);
|
||||
Action<Cmdlet> errorWriter = delegate (Cmdlet cmdlet)
|
||||
{
|
||||
cmdlet.WriteError(errorRecord);
|
||||
};
|
||||
Action<Cmdlet> errorWriter = (Cmdlet cmdlet) => cmdlet.WriteError(errorRecord);
|
||||
_writeStream.ObjectWriter.Write(errorWriter);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -481,10 +481,7 @@ namespace Microsoft.PowerShell.Commands
|
||||
{
|
||||
if (_writeStream.ObjectWriter.IsOpen)
|
||||
{
|
||||
Action<Cmdlet> outputWriter = delegate (Cmdlet cmdlet)
|
||||
{
|
||||
cmdlet.WriteObject(_remoteSession);
|
||||
};
|
||||
Action<Cmdlet> outputWriter = (Cmdlet cmdlet) => cmdlet.WriteObject(_remoteSession);
|
||||
_writeStream.ObjectWriter.Write(outputWriter);
|
||||
}
|
||||
}
|
||||
@@ -506,10 +503,7 @@ namespace Microsoft.PowerShell.Commands
|
||||
|
||||
Exception reason = new RuntimeException(msg, e);
|
||||
ErrorRecord errorRecord = new ErrorRecord(reason, "PSSessionDisconnectFailed", ErrorCategory.InvalidOperation, _remoteSession);
|
||||
Action<Cmdlet> errorWriter = delegate (Cmdlet cmdlet)
|
||||
{
|
||||
cmdlet.WriteError(errorRecord);
|
||||
};
|
||||
Action<Cmdlet> errorWriter = (Cmdlet cmdlet) => cmdlet.WriteError(errorRecord);
|
||||
_writeStream.ObjectWriter.Write(errorWriter);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -651,10 +651,7 @@ namespace Microsoft.PowerShell.Commands
|
||||
private void HandleURIDirectionReported(object sender, RemoteDataEventArgs<Uri> eventArgs)
|
||||
{
|
||||
string message = StringUtil.Format(RemotingErrorIdStrings.URIRedirectWarningToHost, eventArgs.Data.OriginalString);
|
||||
Action<Cmdlet> streamObject = delegate (Cmdlet cmdlet)
|
||||
{
|
||||
cmdlet.WriteWarning(message);
|
||||
};
|
||||
Action<Cmdlet> streamObject = (Cmdlet cmdlet) => cmdlet.WriteWarning(message);
|
||||
_stream.Write(streamObject);
|
||||
}
|
||||
|
||||
@@ -794,10 +791,7 @@ namespace Microsoft.PowerShell.Commands
|
||||
/// </summary>
|
||||
private RemoteRunspace GetRunspaceMatchingRunspaceId(Guid remoteRunspaceId)
|
||||
{
|
||||
Predicate<PSSession> condition = delegate (PSSession info)
|
||||
{
|
||||
return info.InstanceId == remoteRunspaceId;
|
||||
};
|
||||
Predicate<PSSession> condition = (PSSession info) => info.InstanceId == remoteRunspaceId;
|
||||
PSRemotingErrorId tooFew = PSRemotingErrorId.RemoteRunspaceNotAvailableForSpecifiedRunspaceId;
|
||||
PSRemotingErrorId tooMany = PSRemotingErrorId.RemoteRunspaceHasMultipleMatchesForSpecifiedRunspaceId;
|
||||
string tooFewResourceString = RemotingErrorIdStrings.RemoteRunspaceNotAvailableForSpecifiedRunspaceId;
|
||||
@@ -810,10 +804,7 @@ namespace Microsoft.PowerShell.Commands
|
||||
/// </summary>
|
||||
private RemoteRunspace GetRunspaceMatchingSessionId(int sessionId)
|
||||
{
|
||||
Predicate<PSSession> condition = delegate (PSSession info)
|
||||
{
|
||||
return info.Id == sessionId;
|
||||
};
|
||||
Predicate<PSSession> condition = (PSSession info) => info.Id == sessionId;
|
||||
PSRemotingErrorId tooFew = PSRemotingErrorId.RemoteRunspaceNotAvailableForSpecifiedSessionId;
|
||||
PSRemotingErrorId tooMany = PSRemotingErrorId.RemoteRunspaceHasMultipleMatchesForSpecifiedSessionId;
|
||||
string tooFewResourceString = RemotingErrorIdStrings.RemoteRunspaceNotAvailableForSpecifiedSessionId;
|
||||
@@ -826,7 +817,7 @@ namespace Microsoft.PowerShell.Commands
|
||||
/// </summary>
|
||||
private RemoteRunspace GetRunspaceMatchingName(string name)
|
||||
{
|
||||
Predicate<PSSession> condition = delegate (PSSession info)
|
||||
Predicate<PSSession> condition = (PSSession info) =>
|
||||
{
|
||||
// doing case-insensitive match for session name
|
||||
return info.Name.Equals(name, StringComparison.OrdinalIgnoreCase);
|
||||
|
||||
@@ -397,10 +397,7 @@ namespace Microsoft.PowerShell.Commands
|
||||
private void HandleURIDirectionReported(object sender, RemoteDataEventArgs<Uri> eventArgs)
|
||||
{
|
||||
string message = StringUtil.Format(RemotingErrorIdStrings.URIRedirectWarningToHost, eventArgs.Data.OriginalString);
|
||||
Action<Cmdlet> warningWriter = delegate (Cmdlet cmdlet)
|
||||
{
|
||||
cmdlet.WriteWarning(message);
|
||||
};
|
||||
Action<Cmdlet> warningWriter = (Cmdlet cmdlet) => cmdlet.WriteWarning(message);
|
||||
_stream.Write(warningWriter);
|
||||
}
|
||||
|
||||
@@ -450,10 +447,7 @@ namespace Microsoft.PowerShell.Commands
|
||||
|
||||
this.RunspaceRepository.Add(remoteRunspaceInfo);
|
||||
|
||||
Action<Cmdlet> outputWriter = delegate (Cmdlet cmdlet)
|
||||
{
|
||||
cmdlet.WriteObject(remoteRunspaceInfo);
|
||||
};
|
||||
Action<Cmdlet> outputWriter = (Cmdlet cmdlet) => cmdlet.WriteObject(remoteRunspaceInfo);
|
||||
if (writer.IsOpen)
|
||||
{
|
||||
writer.Write(outputWriter);
|
||||
@@ -546,7 +540,7 @@ namespace Microsoft.PowerShell.Commands
|
||||
ErrorCategory.OpenError, null, null,
|
||||
null, null, null, errorDetails, null);
|
||||
|
||||
Action<Cmdlet> errorWriter = delegate (Cmdlet cmdlet)
|
||||
Action<Cmdlet> errorWriter = (Cmdlet cmdlet) =>
|
||||
{
|
||||
//
|
||||
// In case of PSDirectException, we should output the precise error message
|
||||
@@ -589,10 +583,7 @@ namespace Microsoft.PowerShell.Commands
|
||||
(connectionUri != null) ?
|
||||
connectionUri.AbsoluteUri : string.Empty);
|
||||
|
||||
Action<Cmdlet> verboseWriter = delegate (Cmdlet cmdlet)
|
||||
{
|
||||
cmdlet.WriteVerbose(message);
|
||||
};
|
||||
Action<Cmdlet> verboseWriter = (Cmdlet cmdlet) => cmdlet.WriteVerbose(message);
|
||||
if (writer.IsOpen)
|
||||
{
|
||||
writer.Write(verboseWriter);
|
||||
@@ -607,10 +598,7 @@ namespace Microsoft.PowerShell.Commands
|
||||
"PSSessionStateClosed",
|
||||
ErrorCategory.OpenError, remoteRunspace);
|
||||
|
||||
Action<Cmdlet> errorWriter = delegate (Cmdlet cmdlet)
|
||||
{
|
||||
cmdlet.WriteError(errorRecord);
|
||||
};
|
||||
Action<Cmdlet> errorWriter = (Cmdlet cmdlet) => cmdlet.WriteError(errorRecord);
|
||||
if (writer.IsOpen)
|
||||
{
|
||||
writer.Write(errorWriter);
|
||||
@@ -716,10 +704,7 @@ namespace Microsoft.PowerShell.Commands
|
||||
ErrorRecord errorRecord = new ErrorRecord(e, "CreateRemoteRunspaceFailed",
|
||||
ErrorCategory.InvalidArgument, remoteRunspaceInfo);
|
||||
|
||||
Action<Cmdlet> errorWriter = delegate (Cmdlet cmdlet)
|
||||
{
|
||||
cmdlet.WriteError(errorRecord);
|
||||
};
|
||||
Action<Cmdlet> errorWriter = (Cmdlet cmdlet) => cmdlet.WriteError(errorRecord);
|
||||
writer.Write(errorWriter);
|
||||
}
|
||||
}
|
||||
@@ -853,10 +838,7 @@ namespace Microsoft.PowerShell.Commands
|
||||
ErrorRecord errorRecord = new ErrorRecord(e, "CreateRemoteRunspaceFailed",
|
||||
ErrorCategory.InvalidArgument, resolvedComputerNames[i]);
|
||||
|
||||
Action<Cmdlet> errorWriter = delegate (Cmdlet cmdlet)
|
||||
{
|
||||
cmdlet.WriteError(errorRecord);
|
||||
};
|
||||
Action<Cmdlet> errorWriter = (Cmdlet cmdlet) => cmdlet.WriteError(errorRecord);
|
||||
writer.Write(errorWriter);
|
||||
}
|
||||
}
|
||||
@@ -1262,10 +1244,7 @@ namespace Microsoft.PowerShell.Commands
|
||||
ErrorRecord errorRecord = new ErrorRecord(e, "CreateRemoteRunspaceFailed",
|
||||
ErrorCategory.InvalidArgument, uri);
|
||||
|
||||
Action<Cmdlet> errorWriter = delegate (Cmdlet cmdlet)
|
||||
{
|
||||
cmdlet.WriteError(errorRecord);
|
||||
};
|
||||
Action<Cmdlet> errorWriter = (Cmdlet cmdlet) => cmdlet.WriteError(errorRecord);
|
||||
writer.Write(errorWriter);
|
||||
}
|
||||
|
||||
|
||||
@@ -900,10 +900,7 @@ namespace System.Management.Automation.Remoting
|
||||
|
||||
ManualResetEventSlim clientConnectionEnded = new ManualResetEventSlim(false);
|
||||
IPCNamedPipeServer.ListenerEnded -= OnIPCNamedPipeServerEnded;
|
||||
IPCNamedPipeServer.ListenerEnded += (sender, e) =>
|
||||
{
|
||||
clientConnectionEnded.Set();
|
||||
};
|
||||
IPCNamedPipeServer.ListenerEnded += (sender, e) => clientConnectionEnded.Set();
|
||||
|
||||
// Wait for server to service a single client connection.
|
||||
clientConnectionEnded.Wait();
|
||||
|
||||
@@ -983,10 +983,7 @@ namespace System.Management.Automation.Remoting.Client
|
||||
else
|
||||
{
|
||||
// wait for the close to be completed and then release the resources.
|
||||
this.CloseCompleted += delegate (object source, EventArgs args)
|
||||
{
|
||||
Dispose(false);
|
||||
};
|
||||
this.CloseCompleted += (object source, EventArgs args) => Dispose(false);
|
||||
|
||||
try
|
||||
{
|
||||
@@ -1391,7 +1388,7 @@ namespace System.Management.Automation.Remoting.Server
|
||||
// Use thread-pool thread to raise the error handler..see explanation
|
||||
// in the method summary
|
||||
ThreadPool.QueueUserWorkItem(new WaitCallback(
|
||||
delegate (object state)
|
||||
(object state) =>
|
||||
{
|
||||
TransportErrorOccuredEventArgs eventArgs = new TransportErrorOccuredEventArgs(e,
|
||||
TransportMethodEnum.Unknown);
|
||||
|
||||
@@ -2576,7 +2576,7 @@ namespace System.Management.Automation.Remoting.Client
|
||||
ThreadPool.QueueUserWorkItem(new WaitCallback(
|
||||
// wsManSessionHandle is passed as parameter to allow the thread to be independent
|
||||
// of the rest of the parent object.
|
||||
delegate (object state)
|
||||
(object state) =>
|
||||
{
|
||||
IntPtr sessionHandle = (IntPtr)state;
|
||||
if (sessionHandle != IntPtr.Zero)
|
||||
@@ -2626,11 +2626,7 @@ namespace System.Management.Automation.Remoting.Client
|
||||
// Dispose and de-initialize the WSManAPIData instance object on separate worker thread to ensure
|
||||
// it is not run on a WinRM thread (which will fail).
|
||||
// Note that WSManAPIData.Dispose() method is thread safe.
|
||||
System.Threading.ThreadPool.QueueUserWorkItem(
|
||||
(state) =>
|
||||
{
|
||||
tempWSManApiData.Dispose();
|
||||
});
|
||||
ThreadPool.QueueUserWorkItem((_) => tempWSManApiData.Dispose());
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
@@ -712,7 +712,7 @@ namespace System.Management.Automation.Remoting
|
||||
// enqueue a connect event in state machine to let session do any other post-connect operation
|
||||
// Do this outside of the synchronous connect operation, as otherwise connect can easily get deadlocked
|
||||
ThreadPool.QueueUserWorkItem(new WaitCallback(
|
||||
delegate (object state)
|
||||
(object state) =>
|
||||
{
|
||||
RemoteSessionStateMachineEventArgs startEventArg = new RemoteSessionStateMachineEventArgs(RemoteSessionEvent.ConnectSession);
|
||||
SessionDataStructureHandler.StateMachine.RaiseEvent(startEventArg);
|
||||
|
||||
@@ -723,7 +723,7 @@ namespace System.Management.Automation
|
||||
internal SteppablePipeline GetSteppablePipelineImpl(CommandOrigin commandOrigin, object[] args)
|
||||
{
|
||||
var pipelineAst = GetSimplePipeline(
|
||||
resourceString => { throw PSTraceSource.NewInvalidOperationException(resourceString); });
|
||||
resourceString => throw PSTraceSource.NewInvalidOperationException(resourceString));
|
||||
Diagnostics.Assert(pipelineAst != null, "This should be checked by GetSimplePipeline");
|
||||
|
||||
if (pipelineAst.PipelineElements[0] is not CommandAst)
|
||||
|
||||
@@ -903,8 +903,8 @@ namespace Microsoft.PowerShell.Commands
|
||||
{
|
||||
ErrorEventArgs errorEventArgs = null;
|
||||
var tcs = new TaskCompletionSource<FileSystemEventArgs>();
|
||||
FileSystemEventHandler onChangedHandler = (object source, FileSystemEventArgs e) => { tcs.TrySetResult(e); };
|
||||
RenamedEventHandler onRenamedHandler = (object source, RenamedEventArgs e) => { tcs.TrySetResult(e); };
|
||||
FileSystemEventHandler onChangedHandler = (object source, FileSystemEventArgs e) => tcs.TrySetResult(e);
|
||||
RenamedEventHandler onRenamedHandler = (object source, RenamedEventArgs e) => tcs.TrySetResult(e);
|
||||
ErrorEventHandler onErrorHandler = (object source, ErrorEventArgs e) =>
|
||||
{
|
||||
errorEventArgs = e;
|
||||
|
||||
@@ -326,7 +326,7 @@ namespace Microsoft.PowerShell.Commands
|
||||
}
|
||||
|
||||
sortedEntries.Sort(
|
||||
delegate (DictionaryEntry left, DictionaryEntry right)
|
||||
(DictionaryEntry left, DictionaryEntry right) =>
|
||||
{
|
||||
string leftKey = (string)left.Key;
|
||||
string rightKey = (string)right.Key;
|
||||
|
||||
Reference in New Issue
Block a user