示例#1
0
        public static void SetParameterInterceptor <TCmdlet>(
            [NotNull] this TCmdlet cmdlet,
            [NotNull] IParameterInterceptor interceptor)
            where TCmdlet : Cmdlet
        {
            if (cmdlet is null)
            {
                throw new ArgumentNullException(nameof(cmdlet));
            }

            if (interceptor is null)
            {
                throw new ArgumentNullException(nameof(interceptor));
            }

            var context = DynamicParameterContext.GetContext(cmdlet);

            context.SetParameterInterceptor(interceptor);
        }
示例#2
0
        public static DynamicParameterInstance EnableDynamicParameter <TCmdlet>(
            [NotNull] this TCmdlet cmdlet,
            [NotNull] DynamicParameterDescriptor parameterDescriptor)
            where TCmdlet : Cmdlet
        {
            if (cmdlet is null)
            {
                throw new ArgumentNullException(nameof(cmdlet));
            }

            if (parameterDescriptor is null)
            {
                throw new ArgumentNullException(nameof(parameterDescriptor));
            }

            var context  = DynamicParameterContext.GetContext(cmdlet);
            var instance = context.EnableParameter(parameterDescriptor);

            return(instance);
        }
示例#3
0
        public static object GetDynamicParameterObject <TCmdlet>(
            [NotNull] this TCmdlet cmdlet,
            [NotNull] IDynamicParameterObjectBuilder factory)
            where  TCmdlet : Cmdlet
        {
            if (cmdlet is null)
            {
                throw new ArgumentNullException(nameof(cmdlet));
            }

            if (factory is null)
            {
                throw new ArgumentNullException(nameof(factory));
            }

            var context = DynamicParameterContext.GetContext(cmdlet);

            var dynamicParameterObject = context.GetDynamicParameterObject(factory);

            return(dynamicParameterObject);
        }
示例#4
0
        public static void PopulateRuntimeDefinedParameterValues <TCmdlet>(
            [NotNull] this TCmdlet cmdlet,
            [NotNull] RuntimeDefinedParameterDictionary runtimeDefinedParameters)
            where TCmdlet : Cmdlet
        {
            if (cmdlet is null)
            {
                throw new ArgumentNullException(nameof(cmdlet));
            }

            if (runtimeDefinedParameters is null)
            {
                throw new ArgumentNullException(nameof(runtimeDefinedParameters));
            }

            var context = DynamicParameterContext.GetContext(cmdlet);

            foreach (var parameter in runtimeDefinedParameters.Values)
            {
                context.SetParameterValue(parameter.Name, parameter.Value);
            }
        }
示例#5
0
        public static bool TryGetParameter <TCmdlet>(
            [NotNull] this TCmdlet cmdlet,
            [NotNull] string parameterName,
            [NotNull] out DynamicParameterInstance parameter)
            where  TCmdlet : Cmdlet
        {
            if (cmdlet is null)
            {
                throw new ArgumentNullException(nameof(cmdlet));
            }

            if (parameterName is null)
            {
                throw new ArgumentNullException(nameof(parameterName));
            }

            var context = DynamicParameterContext.GetContext(cmdlet);

            bool enabled = context.TryGetParameter(parameterName, out parameter);

            return(enabled);
        }