C#反射 ConcurrentDictionary问题 10C

反射方法网上挺多,能得到object类型的ConcurrentDictionary,可怎么转换?

 /a类
public class a{

    private class b{

    public string str;

   }
    private ConcurrentDictionary<string,b> dic = new ConcurrentDictionary<string,b>();

}


//reflex类  反射得到私有字段
public static T GetPrivateField<T>(this object instance, string fieldname)
        {
            BindingFlags flag = BindingFlags.Instance | BindingFlags.NonPublic;
            Type type = instance.GetType();
            FieldInfo field = type.GetField(fieldname, flag);
            return (T)field.GetValue(instance);
        }


//执行类
public void test(){
         a pw = new a();
    object ob = pw.GetPrivateField<object>("dic");
    //怎么转换成ConcurrentDictionary<string,b>类型
}
c#

3个回答

说清楚一点怎么转换。

z474243930
z474243930 a pw = new a();
大约 3 年之前 回复
ouyangsixian
风平-浪静 再说object 是所有的类的基类,它可以转换成任何类型的。
大约 3 年之前 回复
ouyangsixian
风平-浪静 object ob = pw.GetPrivateField<object>("dic"); 这个pw怎么突然冒出来的。
大约 3 年之前 回复
z474243930
z474243930 好了
大约 3 年之前 回复
z474243930
z474243930 不好意思写错了 稍等
大约 3 年之前 回复

图片说明

z474243930
z474243930 都备注了 每个方法都在一个类里面,还有你不知道泛型吗?GetPrivateField是静态方法在静态类里面。
大约 3 年之前 回复

你把b申明为public就行了。

z474243930
z474243930 如果有办法能获取到object里面的个数也行。。。。。
大约 3 年之前 回复
z474243930
z474243930 要的就是private 所以不能改成public
大约 3 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问