public class A
{
public struct B
{
public static string C="string";
}
}以上这个类在一个DLL文件里。我如何用反射获取到string C的值?

解决方案 »

  1.   

    我的需求是这样的:要根据用户的输入动态决定用哪个B和C,实际上A里面不止一个B,B里面也不止一个C。解决方法其实很简单:            _assembly = Assembly.LoadFile("DLL的路径");
                //_srcList 里存放A的列表,A级别的类有很多个
                _srcList = AssemblyReader.GetClassListFromAssembly(_assembly);
                //关键就是这个GetNestedTypes方法,可以获取到A里面的内嵌结构,我之前一直用GetMemberinfo(),无法继续解析A里面的B了。
                Type[] ti = _srcList["用户选择的B的索引"].GetNestedTypes(System.Reflection.BindingFlags.Public);
                foreach (Type x in ti)
                {
                    if (x.Name == "用户选择的C名字")
                    {
                        //fields就是C的列表了
                        FieldInfo[] fields = x.GetFields();
                        string str = fields[1].GetValue(null).ToString();
                    }            }
      

  2.   

    我是用一个classFactory(string dllpath,string usingname) 这个函数。 指定dll和域名空间.然后指定到该类,就好。至于你怎么传参,就是动态的了。