internal static PowerShell GetCommandDiscoveryPipeline(object data) { using (RemotingDecoder._trace.TraceMethod()) { PSObject psObject = PSObject.AsPSObject(data); CommandTypes commandTypes = psObject != null?RemotingDecoder.GetPropertyValue <CommandTypes>(psObject, "CommandType") : throw new PSRemotingDataStructureException(PSRemotingErrorId.CantCastRemotingDataToPSObject, new object[1] { (object)data.GetType().FullName }); string[] strArray1; if (RemotingDecoder.GetPropertyValue <PSObject>(psObject, "Name") != null) { strArray1 = new List <string>(RemotingDecoder.EnumerateListProperty <string>(psObject, "Name")).ToArray(); } else { strArray1 = new string[1] { "*" } }; string[] strArray2; if (RemotingDecoder.GetPropertyValue <PSObject>(psObject, "Namespace") != null) { strArray2 = new List <string>(RemotingDecoder.EnumerateListProperty <string>(psObject, "Namespace")).ToArray(); } else { strArray2 = new string[1] { "" } }; object[] objArray = RemotingDecoder.GetPropertyValue <PSObject>(psObject, "ArgumentList") == null ? (object[])null : new List <object>(RemotingDecoder.EnumerateListProperty <object>(psObject, "ArgumentList")).ToArray(); PowerShell powerShell = PowerShell.Create(); powerShell.AddCommand("Get-Command"); powerShell.AddParameter("Name", (object)strArray1); powerShell.AddParameter("CommandType", (object)commandTypes); powerShell.AddParameter("Module", (object)strArray2); powerShell.AddParameter("ArgumentList", (object)objArray); return(powerShell); } }
internal static PSEventArgs GetPSEventArgs(PSObject dataAsPSObject) { using (RemotingDecoder._trace.TraceMethod()) { int eventIdentifier = dataAsPSObject != null?RemotingDecoder.GetPropertyValue <int>(dataAsPSObject, "PSEventArgs.EventIdentifier") : throw RemotingDecoder._trace.NewArgumentNullException(nameof(dataAsPSObject)); string propertyValue1 = RemotingDecoder.GetPropertyValue <string>(dataAsPSObject, "PSEventArgs.SourceIdentifier"); object propertyValue2 = RemotingDecoder.GetPropertyValue <object>(dataAsPSObject, "PSEventArgs.Sender"); object propertyValue3 = RemotingDecoder.GetPropertyValue <object>(dataAsPSObject, "PSEventArgs.MessageData"); string propertyValue4 = RemotingDecoder.GetPropertyValue <string>(dataAsPSObject, "PSEventArgs.ComputerName"); Guid propertyValue5 = RemotingDecoder.GetPropertyValue <Guid>(dataAsPSObject, "PSEventArgs.RunspaceId"); ArrayList arrayList = new ArrayList(); foreach (object obj in RemotingDecoder.EnumerateListProperty <object>(dataAsPSObject, "PSEventArgs.SourceArgs")) { arrayList.Add(obj); } return(new PSEventArgs(propertyValue4, propertyValue5, eventIdentifier, propertyValue1, propertyValue2, arrayList.ToArray(), propertyValue3 == null ? (PSObject)null : PSObject.AsPSObject(propertyValue3)) { TimeGenerated = RemotingDecoder.GetPropertyValue <DateTime>(dataAsPSObject, "PSEventArgs.TimeGenerated") }); } }