1

したがって、通常の .net アセンブリでアクセスできますSystemInformation.VirtualScreen。これは PCL 内からどのように行われますか?

4

1 に答える 1

2

これは私がすることです:

  1. IVirtualScreenPCL プロジェクトに抽象化を導入する
  2. デスクトップ クラス ライブラリ (PCL プロジェクトを参照する) で、アダプター クラスを提供しSystemInformation.VirtualScreenて、IVirtualScreen インターフェイスにマップします。
  3. デスクトップ アプリケーションをブートストラップするときは、プラットフォーム固有のバージョンを 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 に答える