每当我尝试通过reflection
访问某个属性的值时,都会收到类似
“System.ArgumentException:找不到'XXXX'的方法 System.Reflection.MonoProperty.Get“
。我使用Xamarin工作室版本6.3和属性也只声明为public
。
型号:
using System;
namespace XXXX.Core
{
public class ManufacturingParameters
{
public ManufacturingParameters()
{
}
private int oemCode;
public int OEMCode
{
get { return oemCode; }
set { oemCode = value; }
}
}
}
Ex Code:
ValueString = deviceInfoContentVC.devInfo.manufacturingParameters.GetType().GetProperty(ParamSchema.Key).GetValue(deviceInfoContentVC.devInfo.manufacturingParameters).ToString();
上面的代码在Visual Studio中完美运行,但在xamarin studio中却没有。
但我可以通过以下代码访问相同的属性:
ValueString = deviceInfoContentVC.devInfo.manufacturingParameters.oemCode.ToString();
由于我想动态访问它,我需要reflection
种机制。
有没有替代解决方案/修复方法?
谢谢。
答案 0 :(得分:0)
最后解决了这个问题,这是我找到的解决方案。
链接器正在剥离它。我已经在iOS项目的设置和Build标题下的“Link All”中将Linker Behavior更改为“Link Framework SDK Only”。
现在它的作品就像一个魅力。