gpt4 book ai didi

c# - 从命名空间获取类

转载 作者:太空宇宙 更新时间:2023-11-03 13:30:04 25 4
gpt4 key购买 nike

我正在尝试从程序集中获取类和方法,当程序集与类所在的位置相同时它可以工作,但是当程序集在其他项目中时它不起作用。我已经从我想要获取类和方法的项目中添加了引用,但是 var theList 返回 null。我想从一个项目到另一个项目获取类和方法,这两个项目在同一个解决方案中。我需要一些帮助

class Program
{
static void Main(string[] args)
{

var theList = Assembly.GetExecutingAssembly().GetTypes().ToList().Where(t => t.Namespace == "____mvc4.Models").ToList();

Console.WriteLine("--List of Classes with his respective namescpace : ");
foreach (var item in theList)
{

Console.WriteLine(item);

}
Console.WriteLine("------List of classes: ");
foreach (var item in theList)
{

Console.WriteLine("*****************" + item.Name + "*****************");
MemberInfo[] memberInfo = item.GetMethods(BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.DeclaredOnly | BindingFlags.Static | BindingFlags.Instance);
for (int i = 0; i < memberInfo.Length; i++)
{
if (!(memberInfo[i].Name.Contains("get_") || memberInfo[i].Name.Contains("set_")))
{
Console.WriteLine("{0}", memberInfo[i].Name);
}

}

}

Console.ReadLine();
}

return null

enter image description here

AppDomain.CurrentDomain.GetAssemblies().ToList()中没有出现我要获取的类所在的程序集;

enter image description here

最佳答案

这里...

var theList = Assembly.GetExecutingAssembly().GetTypes()...etc

您指的是当前(“正在执行”)程序集。如果要从另一个程序集中获取类型,则需要获取对该程序集的引用。一个简单的方法是从引用的程序集中引用某种类型:

var otherAssembly = typeof(SomeTypeDefinedInAReferencedAssembly).Assembly;
var theList = otherAssembly.GetTypes()...etc

关于c# - 从命名空间获取类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20907521/

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