在Xamarin Prism.Forms模块中访问App全局变量(Prism.Modularity)

时间:2017-08-07 14:04:42

标签: xamarin xamarin.forms prism prism-6

我正在使用Prism.Forms开发Xamarin Forms跨平台应用程序。 尝试使用Prism.Modularity在我的应用程序中实现模块化。 除了现有的默认可移植类库之外,我还创建了几个模块(xamarin形式的可移植类库)。现在我必须使用我在模块中的App.Xaml.cs(在APP类中)声明的全局静态变量。无论如何我可以访问模块中的当前应用程序吗?或者是否可以在模块和主App之间共享数据。

1 个答案:

答案 0 :(得分:0)

喜欢共享服务?

声明所有需要它的模块可以访问的接口,并在其中一个模块中注册一个实现单例...

示例:

public interface ISomeDataProvider
{
    int SomeNumber { get; set; }
}

internal class SimpleDataProvider : ISomeDataProvider
{
    public int SomeNumber { get; set; }
}

internal class InAModule
{
    public InAModule( ISomeDataProvider dataProvider )
    {
        dataProvider.SomeNumber = 1;
    }
}

internal class InAnotherModule
{
    public InAnotherModule( ISomeDataProvider dataProvider )
    {
        _dataProvider = dataProvider;
    }

    public void PrintSomeNumber()
    {
        Console.WriteLine( _dataProvider.SomeNumber.ToString() );
    }

    private readonly ISomeDataProvider _dataProvider;
}