c# - Returning an object from PowerShell cmdlet -
i'm trying create own set of cmdlets powershell snapin. problem i'm having i've created own object create , populate within processrecord method i'm not able alter homecoming type allow me homecoming object created.
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(); homecoming rptfilesettings; }
this processrecord method it's overriding 1 pscmdlet cannot alter homecoming type void.
can help best way homecoming rptfilesettings object can utilize values in other cmdlets?
you don't ever need homecoming value cmdlet.processrecord
method. method has it's specific place , way of utilize in powershell cmdlet processing lifecycle.
passing objects downwards cmdlet processing pipeline handled framework you. same way cmdlet instance gets input info can send info output farther processing. passing objects output done using cmdlet.writeobject
method within of input processing methods, beginprocessing
, processrecord
, endprocessing
.
to pass constructed rptfilesettings
object cmdlet output need this:
protected override void processrecord() { reportfilesettings rptfilesettings = new reportfilesettings(); ... writeobject(rptfilesettings); }
c# powershell return-type cmdlets pscmdlet
No comments:
Post a Comment