Skip to content

Instantly share code, notes, and snippets.

@CN-CODEGOD
Last active December 17, 2024 17:13
Show Gist options
  • Save CN-CODEGOD/dd415e0ab67f5f900982bfa227b11c47 to your computer and use it in GitHub Desktop.
Save CN-CODEGOD/dd415e0ab67f5f900982bfa227b11c47 to your computer and use it in GitHub Desktop.
HOW to write the save method
Import-xml
using namespace system.xml.linq
class script {
[scriptblock]$scriptblock
[string]$name
#1.add hidden path
hidden [string]$path = "$PSScriptRoot\xml\script.xml"
#2.init
[void] DoInit( [pscustomobject]$pscustomobject){
$pscustomobjectName= (($pscustomobject)|Get-Member -Type NoteProperty ).Name
foreach($propertyName in $pscustomobjectName ){
$this.$Propertyname= $pscustomobject.$Propertyname
}
}
script ($pscustomobject){
$this.doinit($pscustomobject)
}
#3.save method
[object] save(){
$object=[XElement]::new("object",
[XAttribute]::new("name","script"),
[XElement]::new("property",[XAttribute]::new("name","scriptblock"),$this.scriptblock),
[XElement]::new("property",[XAttribute]::new("name","name"),$this.name)
)
return $object.ToString()
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment