2017-11-30 23 views
0

ハイ私のプリズムアプリケーションには、いくつかの共有サービスがあります。 私は今、私のサービスをチェーンしたいと思っています。私は別のサービスでサービスを使いたい。たとえば、私はViewModelだけでなく、他のサービスでもエラーをログに記録するためにLoggerサービスを使いたいと思う。プリズムXamarinフォーム - 共有サービスでの共有サービスの使用

私は今よりも良い方法で可能ですか?

私はViewModelsコンストラクタで両方のサービスをリクエストしています。 私はサービス1のメソッドを呼び出し、それらにパラメータとしてのサービス2への参照を与えます。

私はプリズムでこれを行うより良い方法があると思いますか?

ありがとうございました

答えて

0

一般的には、他のサービスでサービスを登録して再利用することができます。例えば、あなたが持っている可能性が:のNavigationServiceはあなたが正しく動作するからナビゲートしているページの理解を必要とするあなたはしかし、あなたのサービスの中にINavigationServiceを使用することを試みるべきではありません

public interface ILogger 
{ 
    void Log(string message); 
} 

public interface IApiService 
{ 
    Task DoStuff(); 
} 

public class ApiService : IApiService 
{ 
    ILogger _logger { get; } 

    public ApiService(ILogger logger) 
    { 
     _logger = logger 
    } 

    public Task DoStuff() 
    { 
     // Do DoStuff 
     _logger.Log("Some Message"); 
    } 
} 

関連する問題