2012-04-19 23 views
4

我創建了一個使用MVVMCross的應用程序,IOS和Android版本正在工作,但是當我嘗試「移植」到WP7時,下面的問題:methodAccessException當使用匿名對象(MVVMCross)在WP7上將ViewModel中的變量傳遞給ViewModel

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),你必須設置在AssemblyInfo.cs中對WP7的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主題,但無法真正理解它。這就是爲什麼你需要行[assembly: InternalsVisibleTo("Cirrious.MvvmCross.WindowsPhone")]

你可以檢查AssemblyInfo.cs文件肯定被鏈接到項目中(而這是 -

回答

3

匿名類肯定會被作爲internal由編譯器生成包含ViewModel/anonymous-class代碼的項目)?

如果是這樣的話,您可以檢查methodAccessException以查看消息是什麼嗎?

如果這樣做沒有幫助,您可以使用像Reflector這樣的工具來檢查internalVisible屬性是否實際存在於內核/應用程序組件上?

+1

我想我今天早上還沒有完全清醒。我將該屬性添加到UI中的AssemblyInfo.cs文件而不是Core(/ Library)。糾正這個錯誤後,它工作正常! – David 2012-04-19 12:18:04

+0

我以前做過:) – Stuart 2012-04-19 13:34:58

相關問題