Skip to content

Commit 22dbb57

Browse files
authored
Merge pull request #579 from Gijsreyn/export-multi-methods
Export multi methods
2 parents 71fac96 + 242a1a0 commit 22dbb57

File tree

2 files changed

+32
-1
lines changed

2 files changed

+32
-1
lines changed

powershell-adapter/Tests/TestClassResource/0.0.1/TestClassResource.psm1

+24
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,30 @@ class TestClassResource : BaseTestClass
8181

8282
return $resultList.ToArray()
8383
}
84+
85+
static [TestClassResource[]] Export([bool]$UseExport)
86+
{
87+
if ($UseExport)
88+
{
89+
return [TestClassResource]::Export()
90+
}
91+
else
92+
{
93+
$resultList = [List[TestClassResource]]::new()
94+
$resultCount = 5
95+
if ($env:TestClassResourceResultCount) {
96+
$resultCount = $env:TestClassResourceResultCount
97+
}
98+
1..$resultCount | %{
99+
$obj = New-Object TestClassResource
100+
$obj.Name = "Object$_"
101+
$obj.Prop1 = "Property of object$_"
102+
$resultList.Add($obj)
103+
}
104+
}
105+
106+
return $resultList.ToArray()
107+
}
84108
}
85109

86110
[DscResource()]

powershell-adapter/psDscAdapter/psDscAdapter.psm1

+8-1
Original file line numberDiff line numberDiff line change
@@ -485,7 +485,14 @@ function Invoke-DscOperation {
485485
}
486486
'Export' {
487487
$t = $dscResourceInstance.GetType()
488-
$method = $t.GetMethod('Export')
488+
$methods = $t.GetMethods() | Where-Object { $_.Name -eq 'Export' }
489+
$method = foreach ($mt in $methods) {
490+
if ($mt.GetParameters().Count -eq 0) {
491+
$mt
492+
break
493+
}
494+
}
495+
489496
if ($null -eq $method) {
490497
"Export method not implemented by resource '$($DesiredState.Type)'" | Write-DscTrace -Operation Error
491498
exit 1

0 commit comments

Comments
 (0)