4

我已经使用 MVVMCross 创建了一个应用程序,IOS 和 Android 版本正在运行,但是当我尝试“移植”到 WP7 时,我遇到了以下问题:

throw methodAccessException.MvxWrap("Problem accessing object - most likely this is caused by an anonymous object being generated as Internal - please see http://stackoverflow.com/questions/8273399/anonymous-types-and-get-accessors-on-wp7-1");

正如我的其他问题的答案中提到的(在 Android 上),您必须在 WP7 的 AssemblyInfo.cs 中设置 InternalsVisibleTo 属性。所以我做了:

[assembly: InternalsVisibleTo("Cirrious.MvvmCross.WindowsPhone")]

但这没有任何区别。我使用以下代码将两个变量从我的 BeckhoffViewModel 发送到我的 BeckhoffSensorViewModel。

BeckhoffViewModel:

public IMvxCommand BeckhoffSensor1
{
get
    {
        return new MvxRelayCommand(kvpSens1);
    }
}

private void kvpSens1()
{
    RequestNavigate<BeckhoffSensorViewModel>(new { VarType = "short", Variable = ".countertest" });
}

BeckhoffSensorViewModel:

public BeckhoffSensorViewModel(string VarType, string Variable)
{
    _vartype = VarType;
    _variable = Variable;
}

有什么我忽略的吗?我还查看了异常中提到的其他 stackoverflow 主题,但无法真正理解。

4

1 回答 1

3

匿名类肯定会internal由编译器创建 - 这就是您需要该行的原因[assembly: InternalsVisibleTo("Cirrious.MvvmCross.WindowsPhone")]

您能否检查 AssemblyInfo.cs 文件是否确实链接到项目中(并且这是包含 ViewModel/匿名类代码的项目)?

如果是这种情况,您可以检查methodAccessException一下消息是什么吗?

如果这没有帮助,您可以使用 Reflector 之类的工具来检查内核/应用程序程序集上实际存在的 internalVisible 属性吗?

于 2012-04-19T11:52:23.823 回答