1

ASP.MVC アプリケーションと Metro アプリで使用したくないコア機能を備えた dll があります。そこで、.NET 4.0 および .NET for Widows ストア アプリと互換性のある Portable Library を dll から作成しました。予想通り、ビルドは失敗しました。主な理由は次のとおりです。

  1. シリアライズ可能な属性http://social.msdn.microsoft.com/Forums/en/winappswithcsharp/thread/b2ca4ac8-326d-48b0-bb45-965459a99808 - 痛ましい驚き
  2. System.Reflection.Emit 名前空間http://geekswithblogs.net/mbrit/archive/2012/06/05/say-goodbye-to-system.reflection.emit-any-dynamic-proxy-generation-in-winrt.aspx
  3. FileInfo クラスの使用法。すべてのファイル システム コールが機能しないことが予想されます

また、すべての UI クラスがコンパイルされるわけではないこともわかっています。

だから私の質問は、.net 4.0 と WinRT の間でライブラリを共有する場合、避ける必要がある名前空間とクラスは何ですか?

更新 クラスと名前空間の変更の完全なリストは次のとおりですhttp://msdn.microsoft.com/en-us/library/windows/apps/br230302%28v=vs.110%29.aspx#convert

4

1 に答える 1

2

.NET Framework および Windows ストア アプリで再利用する新しいコードを作成している場合は、これら 2 つのターゲット プラットフォームを選択して、移植可能なクラス ライブラリとしてコードの作成をすぐに開始することをお勧めします。この方法では、両方のプラットフォームで動作するクラスとメソッドのみを使用できます (Intellisense も期待どおりに動作します)。

サポートされている各プラットフォームで利用可能な API の概要については、こちらを参照してください。

概念的には異なりますが、ある意味でまだ利用できる (ファイル IO が良い例です) ため、移植可能なクラス ライブラリではサポートされていない API については、抽象化/間接化パターンを使用して、プラットフォームごとに異なる方法で実装できます。ここでは、このアプローチの適切な説明を示します。

于 2012-11-12T06:02:19.147 に答える