コード例 #1
0
        public static RuntimeDefinedParameter GetObjectTypeParameter(string paramName, bool mandatory, int position, bool allowWildcard, string parameterSetName)
        {
            RuntimeDefinedParameter parameter = new RuntimeDefinedParameter();

            parameter.Name          = paramName;
            parameter.ParameterType = typeof(string);
            IList <ObjectTypeDefinition> objectTypes = ResourceManagementSchema.GetObjectTypes().ToList();

            if (objectTypes.Count > 0)
            {
                List <string> objectTypeNames = objectTypes.OrderBy(t => t.SystemName).Select(t => t.SystemName).ToList();
                if (allowWildcard)
                {
                    objectTypeNames.Add("*");
                }

                ValidateSetAttribute setAttribute = new ValidateSetAttribute(objectTypeNames.ToArray());
                parameter.Attributes.Add(setAttribute);
            }

            ParameterAttribute paramAttribute = new ParameterAttribute();

            paramAttribute.Mandatory        = mandatory;
            paramAttribute.Position         = position;
            paramAttribute.ParameterSetName = parameterSetName;
            parameter.Attributes.Add(paramAttribute);
            return(parameter);
        }
コード例 #2
0
        public static RuntimeDefinedParameter GetAttributeNameParameter(string paramName, bool mandatory, int position, string objectType, string parameterSetName)
        {
            RuntimeDefinedParameter parameter = new RuntimeDefinedParameter();

            parameter.Name          = paramName;
            parameter.ParameterType = typeof(string);

            if (objectType == null)
            {
                List <string> attributeNames = new List <string>();

                IList <ObjectTypeDefinition> objectTypes = ResourceManagementSchema.GetObjectTypes().ToList();

                if (objectTypes.Count > 0)
                {
                    foreach (ObjectTypeDefinition type in objectTypes)
                    {
                        attributeNames.AddRange(type.Attributes.Select(t => t.SystemName));
                    }

                    if (attributeNames.Count > 0)
                    {
                        ValidateSetAttribute setAttribute = new ValidateSetAttribute(attributeNames.Distinct().OrderBy(t => t).ToArray());
                        parameter.Attributes.Add(setAttribute);
                    }
                }
            }
            else
            {
                if (ResourceManagementSchema.ContainsObjectType(objectType))
                {
                    ValidateSetAttribute setAttribute = new ValidateSetAttribute(ResourceManagementSchema.GetObjectType(objectType).Attributes.OrderBy(t => t.SystemName).Select(t => t.SystemName).ToArray());
                    parameter.Attributes.Add(setAttribute);
                }
            }

            ParameterAttribute paramAttribute = new ParameterAttribute();

            paramAttribute.Mandatory        = mandatory;
            paramAttribute.Position         = position;
            paramAttribute.ParameterSetName = parameterSetName;
            parameter.Attributes.Add(paramAttribute);
            return(parameter);
        }