gpt4 book ai didi

asp.net - 获取 ASP.NET vNext 中的当前 MethodBase

转载 作者:行者123 更新时间:2023-12-02 16:40:14 26 4
gpt4 key购买 nike

我正在将开源库从常规 .NET 4 Client Profile 移植到 DNX Core 5.0。有相当多的库更改,属性或方法被移动或完全删除。我看过this answer但它在我的情况下不起作用,因为该方法已被删除。

问题之一是我有一段代码,其中调用了 MethodBase.GetCurrentMethod() 。 API 中不再存在此方法。剩下的唯一类似的方法是:

public static MethodBase GetMethodFromHandle(RuntimeMethodHandle handle);
public static MethodBase GetMethodFromHandle(RuntimeMethodHandle handle, RuntimeTypeHandle declaringType);

但我不确定“句柄”是什么。我需要获取 MethodBase 才能访问其参数,然后处理它们以进行 REST API 查询。这是在 .NET 4 中构建对象的代码:

public static Annotation Annotation(string query = null, string text = null, string type = null, string name = null, string entity = null, int limit = 25, int offset = 0)
{
var search = Help.SearchToString(MethodBase.GetCurrentMethod(), query, text, type, name, entity);
return Help.Find<Annotation>(search, limit, offset, "annotation");
}

然后在这里使用它:

public static string SearchToString(MethodBase m, params object[] search)
{
var paras = m.GetParameters();
var result = string.Empty;

for (var i = 0; i < search.Length; i++)
{
if (search[i] != null)
{
if (i == 0)
{
result += search[i] + "%20AND%20";
}
else
{
result += paras[i].Name.ToLower() + ":" + search[i] + "%20AND%20";
}
}
}

return result.LastIndexOf("%20AND%20", StringComparison.Ordinal) > 0
? result.Substring(0, result.LastIndexOf("%20AND%20", StringComparison.Ordinal))
: result;
}

如果我无法轻松传递所述 MethodBase 方法,我还可以通过什么其他方式访问 SearchToString() 方法中的 MethodBase 对象参数> 作为参数?

最佳答案

假设方法Annotation在类TestClass中,使用

typeof(TestClass).GetMethod(nameof(Annotation))

关于asp.net - 获取 ASP.NET vNext 中的当前 MethodBase,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32583711/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com