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