大家好,
我正在努力确定尝试访问班级公共财产的问题。
我的需要是非常基本的。我有一个在我的例程中正确实例化的公共类,并且由于反射器,我知道这个类有一个我需要引用的属性。
问题是,该属性定义如下:
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”中会为未知属性生成编译器错误。