2012-04-19 2 views
4

MVVMCross를 사용하여 앱을 만들었습니다. IOS 및 Android 버전이 작동하지만 WP7로 '포트'하려고 시도했을 때 문제 다음익명 객체 (MVVMCross)를 사용하여 ViewModel에서 WP7의 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"); 

(안드로이드) 이것에 대해 내 다른 질문에 대한 답변에서 언급 한 바와 같이 당신은 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 주제를 보았지만 실제로 이해할 수 없었다. 당신이 [assembly: InternalsVisibleTo("Cirrious.MvvmCross.WindowsPhone")]

당신이있는 AssemblyInfo.cs이 확실히 (프로젝트에 링크 된 해당 파일을 확인 할 수 있으며이 것을 라인이 필요한 이유입니다 -

답변

3

익명 클래스는 가장 확실히 컴파일러에 의해 internal으로 생성됩니다 ViewModel/익명 클래스 코드가 포함 된 프로젝트)?

메시지가 무엇인지 확인하려면 methodAccessException을 확인할 수 있습니까?

그래도 도움이되지 않는다면 Reflector와 같은 도구를 사용하여 internalVisible 속성이 실제로 코어/애플리케이션 어셈블리에 있는지 확인할 수 있습니까?

+1

나는 오늘 아침에 완전히 깨어 있지 않았다. Core (/ Library) 대신 UI의 AssemblyInfo.cs 파일에 특성을 추가했습니다. 그 오류를 수정 한 후 잘 작동합니다! – David

+0

나는 그것을 전에했다 : – Stuart

관련 문제