internal static Visibility GetVisibility(this PropertyInfo propertyInfo)
        {
            Visibility getMethodeVisibility = propertyInfo.GetMethod?.GetVisibility() ?? Visibility.None;
            Visibility setMethodeVisibility = propertyInfo.SetMethod?.GetVisibility() ?? Visibility.None;

            return(getMethodeVisibility.CompareTo(setMethodeVisibility) >= 0 ? getMethodeVisibility : setMethodeVisibility);
        }
        internal static Visibility GetVisibility(this EventInfo eventInfo)
        {
            Visibility addMethodeVisibility    = eventInfo.AddMethod?.GetVisibility() ?? Visibility.None;
            Visibility raiseMethodeVisibility  = eventInfo.RaiseMethod?.GetVisibility() ?? Visibility.None;
            Visibility removeMethodeVisibility = eventInfo.RemoveMethod?.GetVisibility() ?? Visibility.None;

            Visibility addOrRaiseMethodVisibility = addMethodeVisibility.CompareTo(raiseMethodeVisibility) >= 0 ? addMethodeVisibility : raiseMethodeVisibility;

            return(removeMethodeVisibility.CompareTo(addOrRaiseMethodVisibility) >= 0 ? removeMethodeVisibility : addOrRaiseMethodVisibility);
        }