本文整理汇总了C#中Cmdlet类的典型用法代码示例。如果您正苦于以下问题:C# Cmdlet类的具体用法?C# Cmdlet怎么用?C# Cmdlet使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
Cmdlet类属于命名空间,在下文中一共展示了Cmdlet类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: WarnAboutUnsupportedActionPreferences
private static void WarnAboutUnsupportedActionPreferences(
Cmdlet cmdlet,
ActionPreference effectiveActionPreference,
string nameOfCommandLineParameter,
Func<string> inquireMessageGetter,
Func<string> stopMessageGetter)
{
string message;
switch (effectiveActionPreference)
{
case ActionPreference.Stop:
message = stopMessageGetter();
break;
case ActionPreference.Inquire:
message = inquireMessageGetter();
break;
default:
return; // we can handle everything that is not Stop or Inquire
}
bool actionPreferenceComesFromCommandLineParameter = cmdlet.MyInvocation.BoundParameters.ContainsKey(nameOfCommandLineParameter);
if (actionPreferenceComesFromCommandLineParameter)
{
Exception exception = new ArgumentException(message);
ErrorRecord errorRecord = new ErrorRecord(exception, "ActionPreferenceNotSupportedByCimCmdletAdapter", ErrorCategory.NotImplemented, null);
cmdlet.ThrowTerminatingError(errorRecord);
}
}
示例2: CmdletParameterBinderController
internal CmdletParameterBinderController(Cmdlet cmdlet, CommandMetadata commandMetadata, ParameterBinderBase parameterBinder)
: base(cmdlet.MyInvocation, cmdlet.Context, parameterBinder)
{
this._warningSet = new HashSet<string>();
this._useDefaultParameterBinding = true;
this._delayBindScriptBlocks = new Dictionary<MergedCompiledCommandParameter, DelayedScriptBlockArgument>();
this._defaultParameterValues = new Dictionary<string, CommandParameterInternal>(StringComparer.OrdinalIgnoreCase);
if (cmdlet == null)
{
throw PSTraceSource.NewArgumentNullException("cmdlet");
}
if (commandMetadata == null)
{
throw PSTraceSource.NewArgumentNullException("commandMetadata");
}
this.Command = cmdlet;
this._commandRuntime = (MshCommandRuntime)cmdlet.CommandRuntime;
this._commandMetadata = commandMetadata;
if (commandMetadata.ImplementsDynamicParameters)
{
base.UnboundParameters = base.BindableParameters.ReplaceMetadata(commandMetadata.StaticCommandParameterMetadata);
base.BindableParameters.GenerateParameterSetMappingFromMetadata(commandMetadata.DefaultParameterSetName);
}
else
{
base._bindableParameters = commandMetadata.StaticCommandParameterMetadata;
base.UnboundParameters = new List<MergedCompiledCommandParameter>(base._bindableParameters.BindableParameters.Values);
}
}
示例3: Write
public void Write(Cmdlet cmd, string response)
{
foreach (var writer in Writers)
{
writer.Write(cmd, response);
}
}
示例4: CmdletProviderContext
internal CmdletProviderContext(CmdletProviderContext contextToCopyFrom)
{
this.credentials = PSCredential.Empty;
this._origin = CommandOrigin.Internal;
this.accumulatedObjects = new Collection<PSObject>();
this.accumulatedErrorObjects = new Collection<ErrorRecord>();
this.stopReferrals = new Collection<CmdletProviderContext>();
if (contextToCopyFrom == null)
{
throw PSTraceSource.NewArgumentNullException("contextToCopyFrom");
}
this.executionContext = contextToCopyFrom.ExecutionContext;
this.command = contextToCopyFrom.command;
if (contextToCopyFrom.Credential != null)
{
this.credentials = contextToCopyFrom.Credential;
}
this.drive = contextToCopyFrom.Drive;
this.force = (bool) contextToCopyFrom.Force;
this.CopyFilters(contextToCopyFrom);
this.suppressWildcardExpansion = contextToCopyFrom.SuppressWildcardExpansion;
this.dynamicParameters = contextToCopyFrom.DynamicParameters;
this._origin = contextToCopyFrom._origin;
this.stopping = contextToCopyFrom.Stopping;
contextToCopyFrom.StopReferrals.Add(this);
this.copiedContext = contextToCopyFrom;
}
示例5: WriteErrorDetails
/// <summary>
/// Process the exception that was thrown and write the error details.
/// </summary>
/// <param name="cmdlet">The cmdlet for which to write the error output.</param>
/// <param name="clientRequestId">The unique id for this request.</param>
/// <param name="exception">The exception that was thrown.</param>
public static void WriteErrorDetails(
Cmdlet cmdlet,
string clientRequestId,
Exception exception)
{
string requestId;
ErrorRecord errorRecord = RetrieveExceptionDetails(exception, out requestId);
// Write the request Id as a warning
if (requestId != null)
{
// requestId was availiable from the server response, write that as warning to the
// console.
cmdlet.WriteWarning(string.Format(
CultureInfo.InvariantCulture,
Resources.ExceptionRequestId,
requestId));
}
else
{
// requestId was not availiable from the server response, write the client Ids that
// was sent.
cmdlet.WriteWarning(string.Format(
CultureInfo.InvariantCulture,
Resources.ExceptionClientSessionId,
SqlDatabaseCmdletBase.clientSessionId));
cmdlet.WriteWarning(string.Format(
CultureInfo.InvariantCulture,
Resources.ExceptionClientRequestId,
clientRequestId));
}
// Write the actual errorRecord containing the exception details
cmdlet.WriteError(errorRecord);
}
示例6: BuildMessage
private string BuildMessage(Cmdlet cmdlet, string baseName, string resourceId, params object[] args)
{
if (cmdlet == null)
{
throw PSTraceSource.NewArgumentNullException("cmdlet");
}
if (string.IsNullOrEmpty(baseName))
{
throw PSTraceSource.NewArgumentNullException("baseName");
}
if (string.IsNullOrEmpty(resourceId))
{
throw PSTraceSource.NewArgumentNullException("resourceId");
}
string template = "";
try
{
template = cmdlet.GetResourceString(baseName, resourceId);
}
catch (MissingManifestResourceException exception)
{
this._textLookupError = exception;
return "";
}
catch (ArgumentException exception2)
{
this._textLookupError = exception2;
return "";
}
return this.BuildMessage(template, baseName, resourceId, args);
}
示例7: Write
public void Write(Cmdlet cmd, string response)
{
var doc = new XmlDocument();
doc.LoadXml(response);
cmd.WriteObject(doc.DocumentElement);
}
示例8: ReflectionParameterBinder
/// <summary>
/// Constructs the parameter binder with the specified type metadata. The binder is only valid
/// for a single instance of a bindable object and only for the duration of a command.
/// </summary>
///
/// <param name="target">
/// The target object that the parameter values will be bound to.
/// </param>
///
/// <param name="command">
/// An instance of the command so that attributes can access the context.
/// </param>
///
/// <param name="commandLineParameters">
/// The dictionary to use to record the parameters set by this object...
/// </param>
///
internal ReflectionParameterBinder(
object target,
Cmdlet command,
CommandLineParameters commandLineParameters)
: base(target, command.MyInvocation, command.Context, command)
{
this.CommandLineParameters = commandLineParameters;
}
示例9: WmiAsyncCmdletHelper
/// <summary>
/// Internal Constructor
/// </summary>
/// <param name="childJob">Job associated with this operation</param>
/// <param name="wmiObject">object associated with this operation</param>
/// <param name="computerName"> computer on which the operation is invoked </param>
/// <param name="results"> sink to get wmi objects </param>
internal WmiAsyncCmdletHelper(PSWmiChildJob childJob, Cmdlet wmiObject, string computerName, ManagementOperationObserver results)
{
_wmiObject = wmiObject;
_computerName = computerName;
_results = results;
this.State = WmiState.NotStarted;
_job = childJob;
}
示例10: Convert
internal static Encoding Convert(Cmdlet cmdlet, string encoding)
{
if (string.IsNullOrEmpty(encoding)
|| (string.Equals(encoding, "unknown", StringComparison.OrdinalIgnoreCase)
|| string.Equals(encoding, "string", StringComparison.OrdinalIgnoreCase))
|| string.Equals(encoding, "unicode", StringComparison.OrdinalIgnoreCase))
{
return Encoding.Unicode;
}
if (string.Equals(encoding, "bigendianunicode", StringComparison.OrdinalIgnoreCase))
{
return Encoding.BigEndianUnicode;
}
if (string.Equals(encoding, "ascii", StringComparison.OrdinalIgnoreCase))
{
return Encoding.ASCII;
}
if (string.Equals(encoding, "utf8", StringComparison.OrdinalIgnoreCase))
{
return Encoding.UTF8;
}
if (string.Equals(encoding, "utf7", StringComparison.OrdinalIgnoreCase))
{
return Encoding.UTF7;
}
if (string.Equals(encoding, "utf32", StringComparison.OrdinalIgnoreCase))
{
return Encoding.UTF32;
}
if (string.Equals(encoding, "default", StringComparison.OrdinalIgnoreCase))
{
return Encoding.Default;
}
if (string.Equals(encoding, "oem", StringComparison.OrdinalIgnoreCase))
{
return Encoding.GetEncoding((int) NativeMethods.GetOEMCP());
}
var str = string.Join(
", ",
"unknown",
"string",
"unicode",
"bigendianunicode",
"ascii",
"utf8",
"utf7",
"utf32",
"default",
"oem");
var message = StringUtil.Format(PathUtilStrings.OutFile_WriteToFileEncodingUnknown, encoding, str);
cmdlet.ThrowTerminatingError(
new ErrorRecord(
ExceptionUtils.NewArgumentException("Encoding"),
"WriteToFileEncodingUnknown",
ErrorCategory.InvalidArgument,
null) {ErrorDetails = new ErrorDetails(message)});
return null;
}
示例11: ChildItemCmdletProviderIntrinsics
internal ChildItemCmdletProviderIntrinsics(Cmdlet cmdlet)
{
if (cmdlet == null)
{
throw PSTraceSource.NewArgumentNullException("cmdlet");
}
this.cmdlet = cmdlet;
this.sessionState = cmdlet.Context.EngineSessionState;
}
示例12: CmdletLogger
public CmdletLogger(Cmdlet cmdlet)
{
_cmdlet = cmdlet;
_name = (from attr in _cmdlet.GetType().GetCustomAttributes(true)
let cmdletattr = attr as CmdletAttribute
where null != cmdletattr
select cmdletattr.NounName + "-" + cmdletattr.VerbName).FirstOrDefault()
?? "Unknown Cmdlet";
}
示例13: ContentCmdletProviderIntrinsics
} // CmdletProviderIntrinsics private
/// <summary>
/// Constructs a facade over the "real" session state API
/// </summary>
///
/// <param name="cmdlet">
/// An instance of the cmdlet.
/// </param>
///
/// <exception cref="ArgumentNullException">
/// If <paramref name="cmdlet"/> is null.
/// </exception>
///
internal ContentCmdletProviderIntrinsics(Cmdlet cmdlet)
{
if (cmdlet == null)
{
throw PSTraceSource.NewArgumentNullException("cmdlet");
}
_cmdlet = cmdlet;
_sessionState = cmdlet.Context.EngineSessionState;
} // ContentCmdletProviderIntrinsics internal
示例14: Prepare
/// <summary>
/// First phase of cmdlet lifecycle: "Binding Parameters that Take Command-Line Input"
/// </summary>
public override void Prepare()
{
Cmdlet cmdlet = (Cmdlet)Activator.CreateInstance(_cmdletInfo.ImplementingType);
cmdlet.CommandInfo = _cmdletInfo;
cmdlet.ExecutionContext = base.ExecutionContext;
cmdlet.CommandRuntime = CommandRuntime;
Command = cmdlet;
MergeParameters();
_argumentBinder = new CmdletParameterBinder(_cmdletInfo, Command);
_argumentBinder.BindCommandLineParameters(Parameters);
}
示例15: Convert
internal static Encoding Convert(Cmdlet cmdlet, string encoding)
{
if ((encoding == null) || (encoding.Length == 0))
{
return Encoding.Unicode;
}
if (string.Equals(encoding, "unknown", StringComparison.OrdinalIgnoreCase))
{
return Encoding.Unicode;
}
if (string.Equals(encoding, "string", StringComparison.OrdinalIgnoreCase))
{
return Encoding.Unicode;
}
if (string.Equals(encoding, "unicode", StringComparison.OrdinalIgnoreCase))
{
return Encoding.Unicode;
}
if (string.Equals(encoding, "bigendianunicode", StringComparison.OrdinalIgnoreCase))
{
return Encoding.BigEndianUnicode;
}
if (string.Equals(encoding, "ascii", StringComparison.OrdinalIgnoreCase))
{
return Encoding.ASCII;
}
if (string.Equals(encoding, "utf8", StringComparison.OrdinalIgnoreCase))
{
return Encoding.UTF8;
}
if (string.Equals(encoding, "utf7", StringComparison.OrdinalIgnoreCase))
{
return Encoding.UTF7;
}
if (string.Equals(encoding, "utf32", StringComparison.OrdinalIgnoreCase))
{
return Encoding.UTF32;
}
if (string.Equals(encoding, "default", StringComparison.OrdinalIgnoreCase))
{
return Encoding.Default;
}
if (string.Equals(encoding, "oem", StringComparison.OrdinalIgnoreCase))
{
return Encoding.GetEncoding((int) NativeMethods.GetOEMCP());
}
string str = string.Join(", ", new string[] { "unknown", "string", "unicode", "bigendianunicode", "ascii", "utf8", "utf7", "utf32", "default", "oem" });
string message = StringUtil.Format(PathUtilsStrings.OutFile_WriteToFileEncodingUnknown, encoding, str);
ErrorRecord errorRecord = new ErrorRecord(PSTraceSource.NewArgumentException("Encoding"), "WriteToFileEncodingUnknown", ErrorCategory.InvalidArgument, null) {
ErrorDetails = new ErrorDetails(message)
};
cmdlet.ThrowTerminatingError(errorRecord);
return null;
}