我一直在构造函数中使用依赖注入,效果很好。我最近了解到 [Inject] 属性,但似乎无法让它发挥作用。也许它不兼容或者也许我滥用它。
在 Startup.cs 中将其注册为服务:
services.AddScoped<IUserProfileService, UserProfileService>();
Run Code Online (Sandbox Code Playgroud)
将其用作带有 [Inject] 属性的属性:
[Microsoft.AspNetCore.Components.Inject]
private IUserProfileService _UserProfileService { get; set; }
Run Code Online (Sandbox Code Playgroud)
当_UserProfileService被调用时,它还没有被初始化并且仍然为空。如果我切换回将其注入到构造函数中,它就会起作用。我是否滥用了该属性,或者根本不可能?
ASP.Net Core 3.1,使用 Blazor
我使用的是最新的 VS2019Pro 和 Core 3.1。
Blazor ServerApp 似乎在 .razor 页面的 @code{} 标记内运行实时代码。因此,我认为创建类和方法来返回数据会更有意义,而不是使用 API 来提供数据。
我面临的唯一问题是能够在类中使用 User.Identity.Name 。通常这是在 .razor 页面和控制器中提供的,没有问题,但是我如何(如果可能的话)在类中使用相同的 User.Identity.Name 属性?
我试图+ = 1到词典中的一个项目,如果它存在,否则在词典中创建键并将其设置为1.我知道我可以使用多行逻辑,但我真的想要看看是否可以将逻辑保持在一条线上.这就是我想要做的:
myDict = {}
myDict[100] += 1 if 100 in myDict else 1
Run Code Online (Sandbox Code Playgroud)
如果密钥100不存在,它会抛出KeyError.如何设置一个内置的其他逻辑来将密钥100设置为1?它甚至可能吗?
非常感谢
可能是一个超级简单的解决方案,但我显然错过了一些东西。
我有一个值为“2020/07/29 13:30:00”的字符串对象。
我如何将其解析为 DateTimeOffset 对象,并假设该解析时间的时区是“GMT 标准时间”,或者是我希望指定的任何 TimeZoneInfo?
然后,我如何获取该 DateTimeOffset,并返回其 Utc 时间,但返回到我选择的任何指定时区?
非常感谢