.Net Core权限管理系统-前后端分离/Admin.Core/src/platform/ZhonTai.Common/Extensions/MethodInfoExtension.cs

(完整代码) 1006B

using System;
using System.Linq;
using System.Reflection;
using System.Threading.Tasks;

namespace ZhonTai.Common.Extensions;

public static class MethodInfoExtension
{
    public static bool HasAttribute<T>(this MethodInfo method)
    {
        return method.GetCustomAttributes(typeof(T), false).FirstOrDefault() is T;
    }

    public static T GetAttribute<T>(this MethodInfo method) where T : Attribute
    {
        return method.GetCustomAttributes(typeof(T), false).FirstOrDefault() as T;
    }

    public static bool IsAsync(this MethodInfo method)
    {
        return method.ReturnType == typeof(Task)
            || (method.ReturnType.IsGenericType && method.ReturnType.GetGenericTypeDefinition() == typeof(Task<>));
    }

    internal static Type GetReturnType(this MethodInfo method)
    {
        var isAsync = method.IsAsync();
        var returnType = method.ReturnType;
        return isAsync ? (returnType.GenericTypeArguments.FirstOrDefault() ?? typeof(void)) : returnType;
    }
}

24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明

AI 解读 AI

登录后可用,每次 10 算力,解读结果公开显示在下面。

还没有人解读过这个文件。