小编Iza*_*cch的帖子

C# ASP.NET Core [Inject] 依赖注入的属性用法

我一直在构造函数中使用依赖注入,效果很好。我最近了解到 [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

c# dependency-injection asp.net-core

7
推荐指数
1
解决办法
1万
查看次数

Blazor 服务器应用程序。课堂上的 Windows 身份验证?

我使用的是最新的 VS2019Pro 和 Core 3.1。

Blazor ServerApp 似乎在 .razor 页面的 @code{} 标记内运行实时代码。因此,我认为创建类和方法来返回数据会更有意义,而不是使用 API 来提供数据。

我面临的唯一问题是能够在类中使用 User.Identity.Name 。通常这是在 .razor 页面和控制器中提供的,没有问题,但是我如何(如果可能的话)在类中使用相同的 User.Identity.Name 属性?

c# blazor

5
推荐指数
1
解决办法
352
查看次数

Python 2.7.14:"+ = 1到字典项,如果密钥存在等于= 1"语法不起作用

我试图+ = 1到词典中的一个项目,如果它存在,否则在词典中创建键并将其设置为1.我知道我可以使用多行逻辑,但我真的想要看看是否可以将逻辑保持在一条线上.这就是我想要做的:

myDict = {}
myDict[100] += 1 if 100 in myDict else 1
Run Code Online (Sandbox Code Playgroud)

如果密钥100不存在,它会抛出KeyError.如何设置一个内置的其他逻辑来将密钥100设置为1?它甚至可能吗?

非常感谢

python dictionary

3
推荐指数
1
解决办法
82
查看次数

假设时区时将字符串解析为 DateTimeOffset

可能是一个超级简单的解决方案,但我显然错过了一些东西。

我有一个值为“2020/07/29 13:30:00”的字符串对象。

我如何将其解析为 DateTimeOffset 对象,并假设该解析时间的时区是“GMT 标准时间”,或者是我希望指定的任何 TimeZoneInfo?

然后,我如何获取该 DateTimeOffset,并返回其 Utc 时间,但返回到我选择的任何指定时区?

非常感谢

c# timezone datetime datetimeoffset

3
推荐指数
1
解决办法
3417
查看次数