Sto provando a creare il mio insieme di cmdlet per uno snapshot di PowerShell. Il problema che sto avendo è che ho creato il mio oggetto che ho creato e popolato con il metodo ProcessRecord ma non riesco a cambiare il tipo di ritorno per permettermi di restituire l'oggetto che ho creato.Restituzione di un oggetto dal cmdlet PowerShell
protected override void ProcessRecord()
{
ReportFileSettings rptFileSettings = new ReportFileSettings();
rptFileSettings.Enabled = string.Equals((reader.GetAttribute("Enabled").ToString().ToLower()), "yes");
rptFileSettings.FileLocation = reader.GetAttribute("FileLocation").ToString();
rptFileSettings.OverwriteExisting = string.Equals(reader.GetAttribute("OverwriteExistingFile").ToString().ToLower(), "yes");
rptFileSettings.NoOfDaysToKeep = int.Parse(reader.GetAttribute("NumberOfDaysToKeep").ToString());
rptFileSettings.ArchiveFileLocation = reader.GetAttribute("ArchiveFileLocation").ToString();
return rptFileSettings;
}
Questo è il mio metodo ProcessRecord ma come è sovrascrivendo quello da PSCmdlet non posso cambiare il tipo di ritorno da vuoto.
Qualcuno può aiutare con il modo migliore per restituire l'oggetto rptFileSettings così come posso quindi utilizzarlo con i suoi valori in altri cmdlet?
perché si vuole tornare nulla dal metodo 'ProcessRecord'? Ha uno scopo molto specifico e non è utile per il valore restituito nel [ciclo di vita dell'elaborazione del cmdlet] (http://msdn.microsoft.com/en-us/library/ms714429 (v = vs.85) .aspx) . – famousgarkin
Sono nuovo in PowerShell e sto creando i cmdlet di PowerShell e così sto cercando di imparare mentre vado, purtroppo, – user1865044
, vedo. Se si desidera solo passare l'oggetto creato lungo la pipeline all'output o un altro cmdlet per l'elaborazione, ciò viene eseguito utilizzando ['Cmdlet.WriteObject'] (http://msdn.microsoft.com/en-us/library/ms568371 (v = vs.85) .aspx) metodo. Nel tuo caso 'WriteObject (rptFileSettings);'. – famousgarkin