public struct TC
    {
        public string name;
        public string ps;
        public string[] array;
    }TC是DLL中的一个结构, 
我的目的是给结构中的变量赋值。 如果是类的话,可以对属性进行赋值和取值, 
但是结构中是public变量,我如何能给它赋值呢?

解决方案 »

  1.   

    反射得到结构的实例,然后的操作就和new得到的实例一样了。
      

  2.   


    Type structType = _assembly.GetType("lassLibrary1Demo.TC");
    object structInstance = _assembly.CreateInstance("lassLibrary1Demo.TC");
    现在我可以得到结构的实例,
    但问题是现在里面不是属性,
    我用PropertyInfo info = structType.GetProperty("name");
    info.SetValue(structInstance, "测试结构赋值", null);这样赋值不了string classAttribute = (string)tp.InvokeMember("name", BindingFlags.DeclaredOnly | BindingFlags.Public
                                                                | BindingFlags.NonPublic | BindingFlags.Instance
                                                                | BindingFlags.GetProperty, null, tmpobj, null);这样也不行...因为这些都是给属性赋值的。现在是结构中的public变量,如何赋值呢?
      

  3.   

    知道了,
    谢谢 zhoufoxcn
    困扰了我2天了,谢谢你给我的提示。