Thursday, 15 March 2012

c# - Returning an object from PowerShell cmdlet -



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