gpt4 book ai didi

c# - 反射以查找方法是否正在使用任何特定方法

转载 作者:太空狗 更新时间:2023-10-29 23:24:25 24 4
gpt4 key购买 nike

我有一个包含一些类的 dll,这些类有一些方法。其中一些方法内部有另一个方法调用。

如何检查类中的方法是否具有特定方法。我已经对此进行了一些谷歌搜索,并且能够在 dll 中找到如下类:

public List < string > GetClassFromDlLstring(string dllName)
{
Assembly assemblies = null;
try
{
assemblies = Assembly.LoadFrom(dllName);
}
catch (Exception ex)
{

}
var allTypes = assemblies.GetTypes();

return (from allType in allTypes where allType.IsClass select allType.ToString()).ToList();
}

还有一个类似的方法来查找类中的所有方法,如下所示:

public List <string> GetAllTMethodClass(string dllName, string className)
{
var assemblies = Assembly.LoadFrom(dllName);

Type type = assemblies.GetType(className);

var temp = new List <string> ();

try
{
MethodInfo[] methods = type.GetMethods();
//MethodInfo[] methods = type.GetMethods(BindingFlags.Instance);

foreach(MethodInfo meth in methods)
{
if (meth.MemberType == MemberTypes.Method && meth.MemberType != MemberTypes.Property)
temp.Add(meth.Name);
}
}
catch (Exception ex)
{

}

return temp;
}

我现在有一个问题,上面的函数也返回属性名。
此外,我想浏览函数列表并检查函数是否包含特定函数。我怎样才能做到这一点?

编辑 1:

我找到了类似的帖子,其链接如下
- Look if a method is called inside a method using reflection
- Get types used inside a C# method body

最佳答案

您必须查看方法的 IL。国际海事组织,Mono.Cecil是执行此操作的最佳方法。

关于c# - 反射以查找方法是否正在使用任何特定方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14396854/

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