in src/VSSetup.PowerShell/PowerShell/Extensions.cs [110:129]
public static T GetPropertyValue<T>(this PSObject @object, string propertyName, T @default = default(T))
{
Validate.NotNull(@object, nameof(@object));
Validate.NotNullOrEmpty(propertyName, nameof(propertyName));
var property = @object.Properties.Match(propertyName, PSMemberTypes.Properties).FirstOrDefault();
if (property != null)
{
if (property.Value is T)
{
return (T)property.Value;
}
else
{
return (T)LanguagePrimitives.ConvertTo(property.Value, typeof(T));
}
}
return @default;
}