public static T GetPropertyValue()

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;
        }