Prism Xamarin Forms - 在共享服务中使用共享服务

时间:2017-11-30 14:18:27

标签: xamarin.forms prism

Hy我在我的prism应用程序中写了几个共享服务。 我现在正想要连锁我的服务。我想在另一项服务中使用这些服务。例如,我想使用mit Loggerservice不仅在我的ViewModel中记录错误,而且还在其他服务中记录错误。

这可能比现在更好吗?

现在我在我的ViewModels构造函数中请求这两个服务。 比我调用一个服务方法,并给它们作为参数的服务二的引用。

我认为在Prism中有更好的方法吗?!

由于

1 个答案:

答案 0 :(得分:0)

一般情况下,您可以在其他服务中注册和重复使用服务。例如,您可以:

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");
    }
}

但是,您不应尝试在服务中使用INavigationService,因为NavigationService需要了解您导航的页面才能正常工作。