【发布时间】:2012-08-09 05:30:24
【问题描述】:
可能重复:
Finding all Namespaces in an assembly using Reflection (DotNET)
让我们考虑一下我有 10 到 30 个 dll 的列表,我需要列出这些 dll 导入的所有命名空间。
我已经尝试使用反射作为以下代码
string[] fileEntries = Directory.GetFiles(sDir, "*.dll");
foreach (string fileName in fileEntries)
{
Assembly assembly = Assembly.LoadFrom(fileName);
List<string> namespaces = new List<string>();
foreach (var type in assembly.GetTypes())
{
string ns = type.Namespace;
if (!namespaces.Contains(ns))
{
namespaces.Add(ns);
Console.WriteLine(ns);
}
}
}
但它只检索那些 dll 的唯一命名空间。
例如让我们考虑一个程序
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.IO;
namespace sample
{
public partial class sample : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
string pth = filepth("D:/sample1/s.txt");
createfile(pth);
Response.Write("File created on path :" + pth);
}
}
}
基于上面的代码,它只检索样本,但我需要检索所有命名空间用作
**
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.IO;
**
你能指导我吗..
等待您宝贵的cmets
【问题讨论】:
-
@Cory,topicstarter 想要找到所有类型,在汇编中使用,并使用它们构建命名空间列表,而不仅仅是他自己创建的类型。
-
@Dennis:点了。涉嫌重复撤销!
标签: c# .net namespaces