Xamarin.Forms DependencyServiceの使い方

こんにちは。レモンティーです。

今回はDependencyServiceを使います。

DependencyServiceというのは
共有プロジェクトから
各プラットフォーム固有の機能を呼び出す機能です。
手順は以下の通りです。

Interface作成

共有プロジェクトにDependencyServiceで呼び出したいメソッドを定義した
インターフェースをつくります。

public interface ITest
    {
        void Test();
    }

プラットフォームごとの実装

各プラットフォームで
さきほどつくったインターフェースを
実装したクラスをつくります。
ここで固有機能をつかいます。
__________
iOSの場合

class DependencyServiceTest : ITest{
   public DependencyServiceTest(){ }
   public Test(){
        //処理
    }
}

引数のないコンストラクタは
DependencyServiceをインスタンス化するために必要なものです。
__________
Androidの場合

class DependencyServiceTest : ITest{

   public Test(){
        //処理
    }
}

登録

さきほどつくった各プラットフォームの実装を登録します。
といってもnamespaceの上に
[assembly:Xamarin.Forms.Dependency(typeof(クラス名))]
と追加するだけです。

例えばAndroidだと

[assembly:Xamarin.Forms.Dependency(typeof(TestApp.Droid.DependencyServiceTest))]
namespace TestApp.Droid{
   class DependencyServiceTest : ITest{

      public Test(){
           //処理
       }
   }
}

こんな感じです。

呼び出し

登録まですんだら、後は共有プロジェクトの任意の場所から
呼び出して使えます。

DependencyService.Get<ITest>().Test();

これでOKです。


作成中にインテリセンスが効かなくなるバグが起きたらどうぞ
sawalemounity.hatenablog.com

今回はこれでおしまいです。

sawalemounity.hatenablog.com

sawalemounity.hatenablog.com

sawalemounity.hatenablog.com