我正在用Prism.Forms开发Xamarin Forms跨平台应用程序。尝试使用Prism.Modularity在我的应用程序中实现模块化。除了现有的默认可移植类库之外,我还创建了两个模块(xamarin窗体可移植类库)。现在,我必须在模块中使用在App.Xaml.cs (在APP类中)中声明的全局静态变量。有没有什么方法可以在模块中访问当前的应用程序?或者,是否有其他方法可以在模块和主应用程序之间共享数据。
发布于 2017-08-08 01:19:18
比如共享服务?
在所有需要它的模块都可以访问的地方声明一个接口,并在其中一个模块中注册一个实现单例...
示例:
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;
}https://stackoverflow.com/questions/45548857
复制相似问题