大家好,
我正在努力确定在尝试访问类上的公共属性时出现了什么问题。
我的需求非常基本。我有一个公共类,在我的例程中正确实例化,并且我知道,通过反射器,这个类具有我需要引用的属性。
问题是,该属性被定义为:
public Vector3 root {
[MethodImpl(MethodImplOptions.InternalCall), WrapperlessIcall] get;
[MethodImpl(MethodImplOptions.InternalCall), WrapperlessIcall] set;
}
我面临的问题是,我试图获取该属性的所有尝试都失败了。 我已经实例化了类型,并尝试使用所有可能的绑定标志进行操作。
Type vtype = myobj.getType()
PropertyInfo[] vproperties;
vproperties = vtype.GetProperties();//(BindingFlags.Default | BindingFlags.CreateInstance | BindingFlags.Instance | BindingFlags.NonPublic);
for (int vpropertycounter =0 ; vpropertycounter < vproperties.Length ; vpropertycounter++) {
Console.write( varbodyproperties[varpropertycounter].Name); <= 'root' never appears in this list
}
我的怀疑和疑虑围绕这样一个事实:可能因为getter和setter是‘无包装器’和‘内部的’,所以根属性可能不是‘可见的’。遗憾的是,我不知道是否可以克服这个问题。
我想知道该属性是否可以被任何方式访问,如果可能的话,如何访问。
欢迎提供建议。
提前致谢。
备注:直接寻址该属性,如“myobj.root”会生成编译器错误“未知属性”。