0

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

4

1 回答 1

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;
}
于 2017-08-07T17:19:17.523 回答