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

时间:2015-10-13 19:44:38

标签: c# asp.net-mvc visual-studio linq-to-sql

我正在尝试从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();

我想提供这些信息,例如方法名称,操作以及找到包含这些变量的方法,我需要这些参数的名称。 我希望我很清楚。

提前感谢所有人。

1 个答案:

答案 0 :(得分:1)

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