したがって、通常の .net アセンブリでアクセスできますSystemInformation.VirtualScreen
。これは PCL 内からどのように行われますか?
1 に答える
2
これは私がすることです:
IVirtualScreen
PCL プロジェクトに抽象化を導入する- デスクトップ クラス ライブラリ (PCL プロジェクトを参照する) で、アダプター クラスを提供し
SystemInformation.VirtualScreen
て、IVirtualScreen インターフェイスにマップします。 デスクトップ アプリケーションをブートストラップするときは、プラットフォーム固有のバージョンを IoC コンテナーに登録します。
// in your PCL project public interface IVirtualScreen { Rectangle Current { get; } // in your desktop project public interface DesktopScreen : IVirtualScreen { public Rectangle Current { get { return System.Windows.Forms.SystemInformation.VirtualScreen; } }
しかし、ここで疑問が生じます。これは PCL プロジェクトで必要なものですか?
UI テクノロジ (WinForms/WPF/SL/WP7/WP8/WinRT) 間の根本的な違いにより、多くのプラットフォーム固有の処理を実行することになる可能性があります。また、モバイル アプリケーション用に IVirtualScreen の別の実装をプラグインすることもできます。これを行う価値は?
于 2013-01-27T07:41:07.277 に答える