System.ArgumentException:在System.Reflection.MonoPropert中找不到“XXXXXXX”的方法

时间:2017-04-19 06:49:03

标签: c# xamarin reflection xamarin.ios

每当我尝试通过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种机制。

有没有替代解决方案/修复方法?

谢谢。

1 个答案:

答案 0 :(得分:0)

最后解决了这个问题,这是我找到的解决方案。

链接器正在剥离它。我已经在iOS项目的设置和Build标题下的“Link All”中将Linker Behavior更改为“Link Framework SDK Only”。

现在它的作品就像一个魅力。