C# 通过反射如何访问静态成员
现在我做了一个类集,每个类中有一个包含类,名称都相同,其中所有的字段都是静态公共的。我想通过反射机制把这些字段值取出来。该怎么办?我可以得到类型,但是不能从声明它的类中取...
现在我做了一个类集,每个类中有一个包含类,名称都相同,其中所有的字段都是静态公共的。我想通过反射机制把这些字段值取出来。该怎么办?
我可以得到类型,但是不能从声明它的类中取出值。有别的方法吗?
那位有好的办法? 展开
我可以得到类型,但是不能从声明它的类中取出值。有别的方法吗?
那位有好的办法? 展开
3个回答
展开全部
//动态链接库中PvsApiIfCtrl.Cls.Cls_Public类有一变量 private static string key="abcd";
//下面通过反射的技术修改和获取值
//设置key
public static void updatePalmKey(string key = "1234567890123456")
{
BindingFlags flag = BindingFlags.Static | BindingFlags.NonPublic;
FieldInfo f_key = typeof(PvsApiIfCtrl.Cls.Cls_Public).GetField("key", flag);
f_key.SetValue(new PvsApiIfCtrl.Cls.Cls_Public(), key);
}
/// <summary>
/// 获取key
/// </summary>
/// <returns></returns>
public static string getPalmKey()
{
BindingFlags flag = BindingFlags.Static | BindingFlags.NonPublic;
FieldInfo f_key = typeof(PvsApiIfCtrl.Cls.Cls_Public).GetField("key", flag);
object o = f_key.GetValue(new PvsApiIfCtrl.Cls.Cls_Public());
return o.ToString();
}
//下面通过反射的技术修改和获取值
//设置key
public static void updatePalmKey(string key = "1234567890123456")
{
BindingFlags flag = BindingFlags.Static | BindingFlags.NonPublic;
FieldInfo f_key = typeof(PvsApiIfCtrl.Cls.Cls_Public).GetField("key", flag);
f_key.SetValue(new PvsApiIfCtrl.Cls.Cls_Public(), key);
}
/// <summary>
/// 获取key
/// </summary>
/// <returns></returns>
public static string getPalmKey()
{
BindingFlags flag = BindingFlags.Static | BindingFlags.NonPublic;
FieldInfo f_key = typeof(PvsApiIfCtrl.Cls.Cls_Public).GetField("key", flag);
object o = f_key.GetValue(new PvsApiIfCtrl.Cls.Cls_Public());
return o.ToString();
}
展开全部
Assembly ab=Assembly.Load("XXX");
Type fieldType=ab.GetType("NameSpace.Class.YouNeedField")
Type fieldType=ab.GetType("NameSpace.Class.YouNeedField")
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询