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);
        }
Esempio n. 3
0
        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);
        }