mirror of
https://github.com/oliverbooth/X10D
synced 2024-11-10 03:25:41 +00:00
Add defaultValue overload for SelectFromCustomAttribute
This commit is contained in:
parent
164c4e4455
commit
c0c41326fc
@ -1,4 +1,4 @@
|
|||||||
using System.Globalization;
|
using System.Globalization;
|
||||||
using System.Reflection;
|
using System.Reflection;
|
||||||
|
|
||||||
namespace X10D.Reflection;
|
namespace X10D.Reflection;
|
||||||
@ -78,6 +78,29 @@ public static class MemberInfoExtensions
|
|||||||
public static TReturn? SelectFromCustomAttribute<TAttribute, TReturn>(this MemberInfo member,
|
public static TReturn? SelectFromCustomAttribute<TAttribute, TReturn>(this MemberInfo member,
|
||||||
Func<TAttribute, TReturn> selector)
|
Func<TAttribute, TReturn> selector)
|
||||||
where TAttribute : Attribute
|
where TAttribute : Attribute
|
||||||
|
{
|
||||||
|
return member.SelectFromCustomAttribute(selector, default);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Retrieves a custom attribute that is decorated by the current member, and projects it into to a new form.
|
||||||
|
/// </summary>
|
||||||
|
/// <typeparam name="TAttribute">The attribute type.</typeparam>
|
||||||
|
/// <typeparam name="TReturn">The return type of the <paramref name="selector" /> delegate.</typeparam>
|
||||||
|
/// <param name="member">The member.</param>
|
||||||
|
/// <param name="selector">A transform function to apply to the attribute.</param>
|
||||||
|
/// <param name="defaultValue">The default value to return when the specified attribute is not found.</param>
|
||||||
|
/// <returns>
|
||||||
|
/// An instance of <typeparamref name="TReturn" /> as provided from <paramref name="selector" />.
|
||||||
|
/// </returns>
|
||||||
|
/// <exception cref="ArgumentNullException">
|
||||||
|
/// <paramref name="member" /> is <see langword="null" />
|
||||||
|
/// -or-
|
||||||
|
/// <paramref name="selector" /> is <see langword="null" />.
|
||||||
|
/// </exception>
|
||||||
|
public static TReturn? SelectFromCustomAttribute<TAttribute, TReturn>(this MemberInfo member,
|
||||||
|
Func<TAttribute, TReturn> selector, TReturn? defaultValue)
|
||||||
|
where TAttribute : Attribute
|
||||||
{
|
{
|
||||||
if (member is null)
|
if (member is null)
|
||||||
{
|
{
|
||||||
@ -91,6 +114,6 @@ public static class MemberInfoExtensions
|
|||||||
|
|
||||||
return member.GetCustomAttribute<TAttribute>() is { } attribute
|
return member.GetCustomAttribute<TAttribute>() is { } attribute
|
||||||
? selector(attribute)
|
? selector(attribute)
|
||||||
: default;
|
: defaultValue;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user