Bir PowerShell eklentisi için kendi cmdlet'ler kümemi oluşturmaya çalışıyorum. Sorun şu ki, ProcessRecord yönteminde oluşturduğum ve doldurduğum kendi nesneyi oluşturduğum, ancak yarattığım nesneyi döndürmeme izin vermek için dönüş türünü değiştiremiyorum.Bir nesneyi PowerShell cmdlet'inden döndürme
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;
}
Bu benim ProcessRecord yöntemdir ama PSCmdlet birini geçersiz kılma gibi ben boşluk dönüş türünü değiştiremezsiniz.
rptFileSettings nesnesini döndürmek için en iyi yöntemden herhangi biri yardımcı olabilir, böylece diğer cmdlet'lerde değerleriyle kullanabilir miyim?
Neden 'ProcessRecord' yönteminden şey dönmek isterim:
sadece bu işlemi yapmanız gerekir cmdlet çıkışına inşarptFileSettings
nesneyi geçmek için? Çok özel bir amacı vardır ve [cmdlet işleme yaşam döngüsünde] döndürülen değer için hiçbir kullanım yoktur (http://msdn.microsoft.com/en-us/library/ms714429 (v = vs.85) .aspx) . – famousgarkinBen powershell için yeni ve powershell cmdlet'leri yaratıyorum ve ne yazık ki ben – user1865044
görüyorum öğrenmeye çalışıyorum. Oluşturulan nesneyi çıktılamak için boru hattına veya işlem için başka bir cmdlet'e aktarmak istiyorsanız, bu işlem ['Cmdlet.WriteObject'] kullanılarak yapılır (http://msdn.microsoft.com/en-us/library/ms568371 (v = vs85) .aspx) yöntemi. Senin durumunda 'WriteObject (rptFileSettings);'. – famousgarkin