diff --git a/src/System.Management.Automation/engine/ArgumentTypeConverterAttribute.cs b/src/System.Management.Automation/engine/ArgumentTypeConverterAttribute.cs
index 22a734d9d34..25584a71a7b 100644
--- a/src/System.Management.Automation/engine/ArgumentTypeConverterAttribute.cs
+++ b/src/System.Management.Automation/engine/ArgumentTypeConverterAttribute.cs
@@ -12,7 +12,7 @@ namespace System.Management.Automation
///
/// This is used for automatic conversions to be performed in shell variables.
///
- internal sealed class ArgumentTypeConverterAttribute : ArgumentTransformationAttribute
+ public sealed class ArgumentTypeConverterAttribute : ArgumentTransformationAttribute
{
///
/// This ctor form is used to initialize shell variables
@@ -36,6 +36,12 @@ internal Type TargetType
}
}
+ ///
+ /// Transforms the inputData.
+ ///
+ /// Object of type EngineIntrinsics.
+ /// Object to be transformed.
+ /// The object after transformation.
public override object Transform(EngineIntrinsics engineIntrinsics, object inputData)
{
return Transform(engineIntrinsics, inputData, false, false);
diff --git a/src/System.Management.Automation/engine/CommonCommandParameters.cs b/src/System.Management.Automation/engine/CommonCommandParameters.cs
index 78530b6d063..cb4e61bc71d 100644
--- a/src/System.Management.Automation/engine/CommonCommandParameters.cs
+++ b/src/System.Management.Automation/engine/CommonCommandParameters.cs
@@ -230,8 +230,20 @@ public string PipelineVariable
private MshCommandRuntime _commandRuntime;
- internal class ValidateVariableName : ValidateArgumentsAttribute
+ ///
+ /// Validates variable name to be valid.
+ ///
+ public class ValidateVariableName : ValidateArgumentsAttribute
{
+ ///
+ /// Validate the value of arguments is a valid variable name.
+ ///
+ ///
+ /// The value of the arguments is a variable name to be validated.
+ ///
+ ///
+ /// Instance of EngineIntrinsics class.
+ ///
protected override void Validate(object arguments, EngineIntrinsics engineIntrinsics)
{
string varName = arguments as string;
diff --git a/src/System.Management.Automation/engine/InternalCommands.cs b/src/System.Management.Automation/engine/InternalCommands.cs
index e8581e8293d..3ee680d9f8b 100644
--- a/src/System.Management.Automation/engine/InternalCommands.cs
+++ b/src/System.Management.Automation/engine/InternalCommands.cs
@@ -2005,8 +2005,14 @@ public SwitchParameter Off
/// * A string without a dot, i.e. "2"
/// * The string 'latest', which we interpret to be the current version of PowerShell.
///
- private sealed class ArgumentToVersionTransformationAttribute : ArgumentTransformationAttribute
- {
+ public sealed class ArgumentToVersionTransformationAttribute : ArgumentTransformationAttribute
+ {
+ ///
+ /// Transform the argument to a version.
+ ///
+ /// EngineIntrinsics object.
+ /// Value of attribute to be transformmed.
+ /// The object after transformation.
public override object Transform(EngineIntrinsics engineIntrinsics, object inputData)
{
object version = PSObject.Base(inputData);
@@ -2043,8 +2049,16 @@ public override object Transform(EngineIntrinsics engineIntrinsics, object input
}
}
- private sealed class ValidateVersionAttribute : ValidateArgumentsAttribute
+ ///
+ /// Attribute to validate the version.
+ ///
+ public sealed class ValidateVersionAttribute : ValidateArgumentsAttribute
{
+ ///
+ /// Validate the arguments is a valid version.
+ ///
+ /// Value of the version argument.
+ /// EngineIntrinsics object.
protected override void Validate(object arguments, EngineIntrinsics engineIntrinsics)
{
Version version = arguments as Version;
diff --git a/src/System.Management.Automation/engine/LanguagePrimitives.cs b/src/System.Management.Automation/engine/LanguagePrimitives.cs
index 253cfd4a69a..aeba706030c 100644
--- a/src/System.Management.Automation/engine/LanguagePrimitives.cs
+++ b/src/System.Management.Automation/engine/LanguagePrimitives.cs
@@ -1888,15 +1888,29 @@ public static bool TryConvertTo(object valueToConvert, Type resultType, IFormatP
#endregion public type conversion
- internal class EnumMultipleTypeConverter : EnumSingleTypeConverter
+ ///
+ /// Convert multiple Enum types.
+ ///
+ public class EnumMultipleTypeConverter : EnumSingleTypeConverter
{
+ ///
+ /// Convert from sourceValue to the specified type.
+ ///
+ /// Value to be converted.
+ /// Type to which sourceValue should be converted to.
+ /// Format provider for the conversion.
+ /// Whether to ignore the case.
+ /// The object after conversion.
public override object ConvertFrom(object sourceValue, Type destinationType, IFormatProvider formatProvider, bool ignoreCase)
{
return EnumSingleTypeConverter.BaseConvertFrom(sourceValue, destinationType, formatProvider, ignoreCase, true);
}
}
- internal class EnumSingleTypeConverter : PSTypeConverter
+ ///
+ /// Convert single Enum type.
+ ///
+ public class EnumSingleTypeConverter : PSTypeConverter
{
private class EnumHashEntry
{
@@ -1976,6 +1990,12 @@ private static EnumHashEntry GetEnumHashEntry(Type enumType)
}
}
+ ///
+ /// Verify if conversion from sourceValue can be done to type destinationType.
+ ///
+ /// Value to be converted.
+ /// Type to which sourceValue should be converted to.
+ /// Whether the sourceValue can be converted to destinationType.
public override bool CanConvertFrom(object sourceValue, Type destinationType)
{
return sourceValue is string && destinationType.IsEnum;
@@ -2091,11 +2111,28 @@ internal static string EnumValues(Type enumType)
return string.Join(CultureInfo.CurrentUICulture.TextInfo.ListSeparator, enumHashEntry.names);
}
+ ///
+ /// Convert from sourceValue to the specified type.
+ ///
+ /// Value to be converted.
+ /// Type to which sourceValue should be converted to.
+ /// Format provider for the conversion.
+ /// Whether to ignore the case.
+ /// The converted object.
public override object ConvertFrom(object sourceValue, Type destinationType, IFormatProvider formatProvider, bool ignoreCase)
{
return EnumSingleTypeConverter.BaseConvertFrom(sourceValue, destinationType, formatProvider, ignoreCase, false);
}
+ ///
+ /// Convert from sourceValue to the specified type.
+ ///
+ /// Value to be converted.
+ /// Type to which sourceValue should be converted to.
+ /// Format provider for the conversion.
+ /// Whether to ignore the case.
+ /// Whether to convert multiple values.
+ /// The converted object.
protected static object BaseConvertFrom(object sourceValue, Type destinationType, IFormatProvider formatProvider, bool ignoreCase, bool multipleValues)
{
Diagnostics.Assert(sourceValue != null, "the type converter has a special case for null source values");
@@ -2235,11 +2272,25 @@ protected static object BaseConvertFrom(object sourceValue, Type destinationType
return Enum.ToObject(destinationType, returnUInt64);
}
+ ///
+ /// Verify if conversion from sourceValue to destinationType can be done. This is always false.
+ ///
+ /// Value to be converted.
+ /// Type to which sourceValue should be converted to.
+ /// Whether the object can be converted.
public override bool CanConvertTo(object sourceValue, Type destinationType)
{
return false;
}
+ ///
+ /// Convert from sourceValue to the specified type.
+ ///
+ /// Value to be converted.
+ /// Type to which sourceValue should be converted to.
+ /// Format provider for the conversion.
+ /// Whether to ignore the case.
+ /// The converted object.
public override object ConvertTo(object sourceValue, Type destinationType, IFormatProvider formatProvider, bool ignoreCase)
{
throw PSTraceSource.NewNotSupportedException();
diff --git a/src/System.Management.Automation/engine/remoting/commands/StartJob.cs b/src/System.Management.Automation/engine/remoting/commands/StartJob.cs
index 7e8c160f9d5..d26b5e60994 100644
--- a/src/System.Management.Automation/engine/remoting/commands/StartJob.cs
+++ b/src/System.Management.Automation/engine/remoting/commands/StartJob.cs
@@ -17,7 +17,7 @@ namespace Microsoft.PowerShell.Commands
/// This cmdlet start invocation of jobs in background.
///
[Cmdlet(VerbsLifecycle.Start, "Job", DefaultParameterSetName = StartJobCommand.ComputerNameParameterSet, HelpUri = "https://go.microsoft.com/fwlink/?LinkID=113405")]
- [OutputType(typeof(PSRemotingJob))]
+ [OutputType(typeof(Job))]
public class StartJobCommand : PSExecutionCmdlet, IDisposable
{
#region Private members
diff --git a/src/System.Management.Automation/help/SaveHelpCommand.cs b/src/System.Management.Automation/help/SaveHelpCommand.cs
index 407aae5b788..9a3180d0c21 100644
--- a/src/System.Management.Automation/help/SaveHelpCommand.cs
+++ b/src/System.Management.Automation/help/SaveHelpCommand.cs
@@ -424,8 +424,17 @@ internal override bool ProcessModuleWithCulture(UpdatableHelpModuleInfo module,
#endregion
}
- internal sealed class ArgumentToModuleTransformationAttribute : ArgumentTransformationAttribute
+ ///
+ /// Attribute to transform to a module.
+ ///
+ public sealed class ArgumentToModuleTransformationAttribute : ArgumentTransformationAttribute
{
+ ///
+ /// Transform the engineIntrinsics to a module.
+ ///
+ /// EngineInstrinsics object.
+ /// Value of the attribute.
+ /// The object after transformation.
public override object Transform(EngineIntrinsics engineIntrinsics, object inputData)
{
object argument = PSObject.Base(inputData);
diff --git a/src/System.Management.Automation/utils/EncodingUtils.cs b/src/System.Management.Automation/utils/EncodingUtils.cs
index 2ac22b11c4c..db9f37d24eb 100644
--- a/src/System.Management.Automation/utils/EncodingUtils.cs
+++ b/src/System.Management.Automation/utils/EncodingUtils.cs
@@ -87,8 +87,14 @@ internal static Encoding Convert(Cmdlet cmdlet, string encoding)
/// When the input data is of type string and is valid to be converted to System.Text.Encoding, we do
/// the conversion and return the converted value. Otherwise, we just return the input data.
///
- internal sealed class ArgumentToEncodingTransformationAttribute : ArgumentTransformationAttribute
+ public sealed class ArgumentToEncodingTransformationAttribute : ArgumentTransformationAttribute
{
+ ///
+ /// Transform the argument to type System.Text.Encoding.
+ ///
+ /// EngineIntrinsics object.
+ /// Value of attribute to be transformmed.
+ /// The object after transformation.
public override object Transform(EngineIntrinsics engineIntrinsics, object inputData)
{
switch (inputData)