Fre*_*örk 132
你需要"倒退"; 列出程序集中的所有类型,然后检查每种类型的命名空间:
using System.Reflection;
private Type[] GetTypesInNamespace(Assembly assembly, string nameSpace)
{
return
assembly.GetTypes()
.Where(t => String.Equals(t.Namespace, nameSpace, StringComparison.Ordinal))
.ToArray();
}
Run Code Online (Sandbox Code Playgroud)
用法示例:
Type[] typelist = GetTypesInNamespace(Assembly.GetExecutingAssembly(), "MyNamespace");
for (int i = 0; i < typelist.Length; i++)
{
Console.WriteLine(typelist[i].Name);
}
Run Code Online (Sandbox Code Playgroud)
对于.Net 2.0之前Assembly.GetExecutingAssembly()没有的任何东西,你需要一个小的解决方法来获得程序集:
Assembly myAssembly = typeof(<Namespace>.<someClass>).GetTypeInfo().Assembly;
Type[] typelist = GetTypesInNamespace(myAssembly, "<Namespace>");
for (int i = 0; i < typelist.Length; i++)
{
Console.WriteLine(typelist[i].Name);
}
Run Code Online (Sandbox Code Playgroud)
您需要提供更多信息......
你的意思是使用反射.您可以遍历程序集Manifest并使用获取类型列表
System.Reflection.Assembly myAssembly = Assembly.LoadFile("");
myAssembly.ManifestModule.FindTypes()
Run Code Online (Sandbox Code Playgroud)
如果它只是在Visual Studio中,您可以在intellisense窗口中获取列表,或打开对象浏览器(CTRL + W,J)