C# 反射 怎么给 全局变量 赋值问题?


 
  public struct TC
    {
        public string name;
        public string ps;
        public string[] array;
    }

TC是DLL中的一个结构, 
我的目的是给结构中的变量赋值。 

如果是类的话,可以对属性进行赋值和取值, 
但是结构中是public变量,我如何能给它赋值呢?

5 个解决方案

#1


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

#2


可以反射得到字段吧。

#3



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变量,如何赋值呢?

#4


structType.GetFields

#5


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

注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
© 2014-2019 ITdaan.com 粤ICP备14056181号  

赞助商广告