2

VS2012 と VS2010 がインストールされています。最初のものを使用して MVVMCross vNext でモバイル アプリの PCL コアを作成し、VS2010 を使用して WP7 エミュレーターで UI.WP7 を開きます (VS2012 WP エミュレーターによる WCF への接続に問題があるため、ネットワーク ブリッジに接続できません)。このコードを使用するまで、すべてがうまくいっています:

protected void NavigateToClient(ClientDataRepository client) { RequestNavigate(new { key = client.IDKlient + "clients"}); }

VS2012 では正常に動作していますが、VS2010 では例外があります (コアと mvvmcross pcl を .dll で参照しています)。

"オブジェクトにアクセスする際の問題 - これは内部として生成された匿名オブジェクトが原因である可能性が最も高い - WP7.1 の匿名型と Get アクセサーを参照してください? ");

私は、アセンブリ InternalToVisible を PublicKey で、私のコアで、さらには Cirrious.MvvmCross ソリューションで作成しましたが、役に立ちません。それを機能させる希望はありますか?ところで、すべてのソリューションは同じ PublicTokenKey を持っていますか?

4

1 に答える 1

2

署名が必要ないため、公開鍵トークンを使用する必要はありません。

1行で十分です。

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

これは、匿名オブジェクトが作成されるアセンブリにある必要があります。これは、コンパイラがinternal匿名クラスを生成する場所であるためです。

https://github.com/slodge/MvvmCross/blob/vnext/Sample%20-%20CustomerManagement/CustomerManagement/CustomerManagement/Properties/AssemblyInfo.cs#L30のように

これは、VS2010 と VS2012 (WP7.1 および WP8 SDK を使用) の両方で機能します。


これがうまくいかない場合は、Dictionary<string,string>ナビゲーションに代わりに a をいつでも使用できます。または、非匿名クラスを使用することもできます。


「ネットワークブリッジに接続できない」を回避するには、イーサネットを使用してみてください-これは私のラップトップで機能します(そしていつか、Win8エミュレーターでもWiFiが機能することを望んでいます)

于 2013-02-25T16:06:53.077 に答える