Admin.Core/src/platform/ZhonTai.DynamicApi/Helpers/ReflectionHelper.cs
(开头部分) 2KB这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
namespace ZhonTai.DynamicApi.Helpers;
internal static class ReflectionHelper
{
public static TAttribute GetSingleAttributeOrDefaultByFullSearch<TAttribute>(TypeInfo info)
where TAttribute : Attribute
{
var attributeType = typeof(TAttribute);
if (info.IsDefined(attributeType, true))
{
return info.GetCustomAttributes(attributeType, true).Cast<TAttribute>().First();
}
else
{
foreach (var implInter in info.ImplementedInterfaces)
{
var res = GetSingleAttributeOrDefaultByFullSearch<TAttribute>(implInter.GetTypeInfo());
if (res != null)
{
return res;
}
}
}
return null;
}
public static TAttribute GetSingleAttributeOrDefault<TAttribute>(MemberInfo memberInfo, TAttribute defaultValue = default(TAttribute), bool inherit = true)
where TAttribute : Attribute
{
var attributeType = typeof(TAttribute);
if (memberInfo.IsDefined(typeof(TAttribute), inherit))
{
return memberInfo.GetCustomAttributes(attributeType, inherit).Cast<TAttribute>().First();
}
return defaultValue;
}
/// <summary>
/// Gets a single attribute for a member.
/// </summary>
/// <typeparam name="TAttribute">Type of the attribute</typeparam>
/// <param name="memberInfo">The member that will be checked for the attribute</param>
/// <param name="inherit">Include inherited attributes</param>
/// <returns>Returns the attribute object if found. Returns null if not found.</returns>
public static TAttribute GetSingleAttributeOrNull<TAttribute>(this MemberInfo memberInfo, bool inherit = true)
where TAttribute : Attribute
{
if (memberInfo == null)
{
throw new ArgumentNullException(nameof(memberInfo));
后面还有 30 行代码,解锁后查看完整代码
24 小时内免费解锁 3 个项目,之后 1 积分/个。 规则说明
AI 解读
登录后可用,每次 10 积分,解读结果公开显示在下面。
还没有人解读过这个文件。
