protected override void GenerateCmdletSpecificParameters(Dictionary <string, object> unboundArguments) { if (!IsInvocation) { var providerNames = PackageManagementService.AllProviderNames; var whatsOnCmdline = GetDynamicParameterValue <string[]>("ProviderName"); if (whatsOnCmdline != null) { providerNames = providerNames.Concat(whatsOnCmdline).Distinct(); } DynamicParameterDictionary.AddOrSet("ProviderName", new RuntimeDefinedParameter("ProviderName", typeof(string[]), new Collection <Attribute> { new ParameterAttribute { ValueFromPipelineByPropertyName = true, ParameterSetName = Constants.ParameterSets.PackageBySearchSet }, new AliasAttribute("Provider"), new ValidateSetAttribute(providerNames.ToArray()) })); } else { DynamicParameterDictionary.AddOrSet("ProviderName", new RuntimeDefinedParameter("ProviderName", typeof(string[]), new Collection <Attribute> { new ParameterAttribute { ValueFromPipelineByPropertyName = true, ParameterSetName = Constants.ParameterSets.PackageBySearchSet }, new AliasAttribute("Provider") })); } }
protected override void GenerateCmdletSpecificParameters(Dictionary <string, object> unboundArguments) { #if DEEP_DEBUG Console.WriteLine("»» Entering GCSP "); #endif if (!IsInvocation) { #if DEEP_DEBUG Console.WriteLine("»»» Does not appear to be Invocation (locked:{0})", IsReentrantLocked); #endif var providerNames = PackageManagementService.AllProviderNames; var whatsOnCmdline = GetDynamicParameterValue <string[]>("ProviderName"); if (whatsOnCmdline != null) { providerNames = providerNames.Concat(whatsOnCmdline).Distinct(); } DynamicParameterDictionary.AddOrSet("ProviderName", new RuntimeDefinedParameter("ProviderName", typeof(string[]), new Collection <Attribute> { new ParameterAttribute { ValueFromPipelineByPropertyName = true, ParameterSetName = Constants.ParameterSets.PackageBySearchSet }, new AliasAttribute("Provider"), new ValidateSetAttribute(providerNames.ToArray()) })); } else { #if DEEP_DEBUG Console.WriteLine("»»» Does appear to be Invocation (locked:{0})", IsReentrantLocked); #endif DynamicParameterDictionary.AddOrSet("ProviderName", new RuntimeDefinedParameter("ProviderName", typeof(string[]), new Collection <Attribute> { new ParameterAttribute { ValueFromPipelineByPropertyName = true, ParameterSetName = Constants.ParameterSets.PackageBySearchSet }, new AliasAttribute("Provider") })); } }