现象 今天在做一个第三方库绑定时,遇到如下情况: _00001.jpg) 摘取其中一段代码如下: /Users/huangboru/myfile/xamarin_workspace/version4/CrashEyeTestPlus/obj/Debug/generated/src/Com.Xsj.Crasheye.ActionError.cs(88,88): Error CS0234: The type or namespace name 'IInterfaceDataType' does not exist in the namespace 'Com.Xsj.Crasheye' (are you missing an assembly reference?) (CS0234) (CrashEyeTestPlus) 错误代码的意……
这里我们通过C#的反射机制来实现这个功能,以获取Resource/drawable文件夹下的图片为例: public int getResourceByReflect(String imageName) { var drawable = typeof(Resource.Drawable); int r_id = 0; try { var field = drawable.GetField(imageName); r_id = (int)field.GetValue(field.Name); } catch (Exception e) { } return r_id; } 使用方法: var id = getResourceByReflect(iconItem.Name); if (id == 0) return; var picture = BitmapFactory.DecodeResource(Context.Resources, id); 需要指出的是,在原生技术中,也可以通过反射实现这个功能,但其反射的目标对象是J……