public PowerShellParameterSetMetadata(string name, ParameterSetMetadata metadata) { Name = name; HelpMessage = metadata.HelpMessage ?? string.Empty; IsMandatory = metadata.IsMandatory; Position = metadata.Position; ValueFromPipeline = metadata.ValueFromPipeline; ValueFromPipelineByPropertyName = metadata.ValueFromPipelineByPropertyName; ValueFromRemainingArguments = metadata.ValueFromRemainingArguments; }
public static int GetParameterSetMetadataFlags(PSObject instance) { if (instance == null) { throw PSTraceSource.NewArgumentNullException("instance"); } ParameterSetMetadata baseObject = instance.BaseObject as ParameterSetMetadata; if (baseObject == null) { throw PSTraceSource.NewArgumentNullException("instance"); } return((int)baseObject.Flags); }
private ParameterMetadata RehydrateParameterMetadata(PSObject deserializedParameterMetadata) { if (deserializedParameterMetadata == null) { throw PSTraceSource.NewArgumentNullException("deserializedParameterMetadata"); } string name = this.GetPropertyValue <string>("Get-Command", deserializedParameterMetadata, "Name"); bool isDynamic = this.GetPropertyValue <bool>("Get-Command", deserializedParameterMetadata, "IsDynamic"); Type parameterType = this.RehydrateParameterType(deserializedParameterMetadata); List <string> list = this.RehydrateList <string>("Get-Command", deserializedParameterMetadata, "Aliases", null); ParameterSetMetadata metadata = new ParameterSetMetadata(-2147483648, 0, null); Dictionary <string, ParameterSetMetadata> parameterSets = new Dictionary <string, ParameterSetMetadata>(StringComparer.OrdinalIgnoreCase); parameterSets.Add("__AllParameterSets", metadata); return(new ParameterMetadata((list == null) ? new Collection <string>() : new Collection <string>(list), isDynamic, name, parameterSets, parameterType)); }
/// <summary> /// Get a data object describing a parameter set. /// </summary> /// <param name="parameterSet">The metadata object describing the parameter set to collect data on.</param> /// <returns>A compatibility data object describing the parameter set given.</returns> public ParameterSetData GetSingleParameterSetData(ParameterSetMetadata parameterSet) { var parameterSetData = new ParameterSetData() { Position = parameterSet.Position }; var parameterSetFlags = new List <ParameterSetFlag>(); if (parameterSet.IsMandatory) { parameterSetFlags.Add(ParameterSetFlag.Mandatory); } if (parameterSet.ValueFromPipeline) { parameterSetFlags.Add(ParameterSetFlag.ValueFromPipeline); } if (parameterSet.ValueFromPipelineByPropertyName) { parameterSetFlags.Add(ParameterSetFlag.ValueFromPipelineByPropertyName); } if (parameterSet.ValueFromRemainingArguments) { parameterSetFlags.Add(ParameterSetFlag.ValueFromRemainingArguments); } if (parameterSetFlags.Count > 0) { parameterSetData.Flags = parameterSetFlags.ToArray(); } return(parameterSetData); }