我花了两个多星期的时间搜索 google、bing、stack overflow 和 msdn 文档,试图找出如何为我正在开发的移动应用程序进行适当的依赖注入。需要明确的是,我每天都在 Web 应用程序中进行 DI。我不需要关于什么、谁以及为什么 DI 很重要的速成课程。我知道它是,并且我总是拥抱它。
我需要了解的是这在移动应用程序世界中是如何工作的,尤其是 UWP 模板 10 移动应用程序。
从我过去开始,在 .net/Asp 应用程序中,我可以“RegisterType(new XYZ).Singleton() blah”{请原谅语法;只是 App_Start.ConfigureServices 中的一个示例}。这在 .netcore 中的工作原理几乎相同,但进行了一些语法更改。
我的问题是现在我试图将我的 api 提供给需要消化我的 IXYZ 服务的 UWP 应用程序。我绝不认为他们应该每次都“新建”一个实例。必须有一种方法将其注入 UWP 端的容器中;我觉得我在这个过程中遗漏了一些非常简单的东西。
这是我的代码:
应用程序.xaml.cs
public override async Task OnStartAsync(StartKind startKind, IActivatedEventArgs args)
{
// TODO: add your long-running task here
//if (args.Kind == ActivationKind.LockScreen)
//{
//}
RegisterServices();
await NavigationService.NavigateAsync(typeof(Views.SearchCompanyPage));
}
public static IServiceProvider Container { get; private set; }
private static void RegisterServices()
{
var services …Run Code Online (Sandbox Code Playgroud) uac dependency-injection inversion-of-control uwp template10