类文件?.cs文件还是.dll/.exe文件?

解决方案 »

  1.   

    ildasm 类文件.dll/.exe
    双击红色箭头:“ MANIFEST”
      

  2.   

    假如是run time的话, 可以试试用Reflection
      

  3.   

    从前我写的一个程序的片断,自己看吧!不排版啦!csdn这个编辑功能太滥!主要就是使用reflection来做。a = Assembly.LoadFrom(fsi.FullName);
    //if(a==null)continue;
    foreach(Type t in a.GetTypes())
    {
    string ns = t.Namespace;
    if(ns==null)continue;
    TreeNode node = new TreeNode();
    string ns1 = ns;
    AddNamespace(tree.Nodes,ref ns,ref node);
    int pos = t.FullName.IndexOf(ns1);
    string clsname = "";
    if(pos>=0)
    {
    clsname = t.FullName.Substring(pos+ns1.Length+1,t.FullName.Length-ns1.Length-1);
    }
    if(node==null)return;
    TreeNode subnode = new TreeNode();
    string btype = "";
    if(t.BaseType!=null)btype = t.BaseType.Name;
    subnode  = node.Nodes.Add(clsname+" - "+btype);
    foreach(ConstructorInfo ci in t.GetConstructors())
    {
    string p = ci.ReflectedType.FullName+" "+ci.Name+"(";
    foreach(ParameterInfo pi in ci.GetParameters())
    {
    p += pi.ParameterType.ToString()+" "+pi.Name+",";
    }
    if(p.Substring(p.Length-1,1)=="(")
    {
    p += ")";
    }
    else
    {
    p = p.Substring(0,p.Length-1)+")";
    }
    foreach(EventInfo ei in t.GetEvents())
    {
    subnode.Nodes.Add(ei.EventHandlerType.FullName+" "+ei.MemberType.ToString()+" "+ei.Name);
    }
    foreach(FieldInfo fi in t.GetFields())
    {
    string stype = "";
    if(fi.IsAssembly)stype += "Assembly ";
    if(fi.IsFamily)stype += "Family ";
    if(fi.IsFamilyAndAssembly)stype += "FamilyAndAssembly ";
    if(fi.IsFamilyOrAssembly)stype += "FamilyOrAssembly ";
    if(fi.IsPrivate)stype += "Private ";
    if(fi.IsPublic)stype += "Public ";
    subnode.Nodes.Add(stype+fi.FieldType.FullName+" "+fi.MemberType.ToString()+" "+fi.Name);
    }
    }
    }
      

  4.   

    你们误解了。我指从一个.cs文件中获取引用了哪些命名空间和相关的DLL
      

  5.   

    我上面的代码,就能取出namespace和相关的dll啊!你仔细看看
      

  6.   

    如果是在Visual Studio.net的IDE中,可以按ctrl+shift+C打开“类视图”,可以看个仔细。