Tôi đang cố gắng tạo tập hợp lệnh ghép ngắn riêng cho một snapshot PowerShell. Vấn đề tôi gặp phải là tôi đã tạo đối tượng của riêng mình mà tôi tạo và điền vào trong phương thức ProcessRecord nhưng tôi không thể thay đổi kiểu trả về để cho phép tôi trả về đối tượng mà tôi đã tạo.Trả về một đối tượng từ lệnh ghép ngắn 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;
}
Đây là phương pháp ProcessRecord của tôi nhưng nó ghi đè từ PSCmdlet tôi không thể thay đổi kiểu trả về.
Bất kỳ ai có thể trợ giúp cách tốt nhất để trả lại đối tượng rptFileSettings để sau đó tôi có thể sử dụng nó với các giá trị của nó trong các lệnh ghép ngắn khác không?
Tại sao bạn sẽ muốn quay trở lại bất cứ điều gì từ 'phương pháp ProcessRecord'? Nó có một mục đích rất cụ thể và không sử dụng cho giá trị trả về trong [vòng đời xử lý cmdlet] (http://msdn.microsoft.com/en-us/library/ms714429 (v = vs.85) .aspx) . – famousgarkin
Tôi mới sử dụng PowerShell và tạo ra các lệnh ghép ngắn PowerShell và vì vậy tôi đang cố gắng học như tôi thật không may – user1865044
Tôi hiểu. Nếu bạn chỉ muốn truyền đối tượng đã tạo ra xuống đường dẫn đến đầu ra hoặc một lệnh ghép ngắn khác để xử lý thì việc này được thực hiện bằng cách sử dụng ['Cmdlet.WriteObject'] (http://msdn.microsoft.com/en-us/library/ms568371 (v = vs.85) .aspx) phương pháp. Trong trường hợp của bạn là 'WriteObject (rptFileSettings);'. – famousgarkin