在c#中捕获方法中的信息

本文关键字:信息 方法 | 更新日期: 2023-09-27 18:17:27

我正试图从c# MVC 5中的方法中的变量中获取信息。

示例,我有这样的方法,并希望获得在下面的示例中变量"dt"中使用的参数。

public static JsonResult NamesDropDownListTest()
{
    var dt = MyClass.QueryStoreProcedureDataTableTest(DataWareHouse,"gpkTest.procedure_type_docs");
    return new JsonResult
    {
        Data = dt,
        JsonRequestBehavior = JsonRequestBehavior.AllowGet,
        MaxJsonLength = int.MaxValue
    };
}

我正在尝试通过这个代码,我在这里看到的论坛:

        var asm = Assembly.Load("MyAssemblyNameProject");
    var listAsm = asm.GetTypes()
            .SelectMany(type => type.GetMethods(BindingFlags.NonPublic | BindingFlags.Static | BindingFlags.Public))
            .Where(m => !m.GetCustomAttributes(typeof(System.Runtime.CompilerServices.CompilerGeneratedAttribute), true).Any())
            .Select(x => new { Classe = x.DeclaringType.Name, Action = x.Name, ReturnType = x.ReturnType.Name, Attributes = string.Join(",", x.GetCustomAttributes().Select(a => a.GetType().Name.Replace("Attribute", ""))), Parameter = string.Join(",", x.GetParameters().Select(s => new { atributo = s.ParameterType.FullName, nome = s.Name }).ToList()), teste = string.Join(",", x.Attributes) })
            .OrderBy(x => x.Classe).ThenBy(x => x.Action).ToList();

我想带来这些信息,如方法名称,操作和哪些方法被发现包含这些变量,我需要这些参数的名称。我希望我说得很清楚。

提前感谢大家。

在c#中捕获方法中的信息

关于局部变量和方法调用的信息不能通过反射获得。您必须使用某种反编译器或静态分析工具来查找在代码中实际使用的方法。