/// <summary>
    /// Exclude changes from a <see cref="Delta{T}"/> where the properties are marked with <see cref="NonEditableAttribute"/>
    /// </summary>
    /// <typeparam name="T"></typeparam>
    /// <param name="delta"></param>
    /// <returns></returns>
    public static Delta <T> ExcludeNonEditable <T>(this Delta <T> delta)
        where T : class
    {
        var excluded = typeof(T).NonEditableProperties();

        return(delta.Exclude(excluded));
    }