我如何在 "normal" c# class 中 use/inject 服务,就像在 Blazor @inject ClassName classObject 中一样
How can I use/inject a service in a "normal" c# class like in Blazor @inject ClassName classObject
我有一个 Blazor 项目,在 Program.cs(正式又名 Startup.cs)我添加了一个服务
builder.Services.AddSingleton<Models.UserVisit>();
我可以 use/access 像这样在 razor/blazor 页面上提供该服务 :
@inject Models.UserVisit userVisitObj
(UserVisit 是文件夹 Models 中的“普通”C# .cs Class)
我不知道如何在没有 razorpage(我会使用 @inject)的普通 C# Class 中使用这个“userVisitObj”?
如何在此处使用它(同一项目中的普通 C# Class 但没有 blazor/razor-componentpage):
public class UserModel
{
[BsonId]
public Guid Id { get; set; }
public CultureInfo UserCultureInfo { get; set; }
...
public UserModel()
{
[Inject]
Models.UserVisit userVisitObj; // THAT DOESN'T WORK -- ERROR
}
}
我希望我能把我的问题说清楚(请客气,我还是个初学者)。
您可以使用构造函数注入如下:
private readonly Models.UserVisit _userVisitObj
public UserModel(Models.UserVisit userVisitObj)
{
_userVisitObj = userVisitObj;
}
请注意,这适用于普通 C# classes。
如果您的 class 是一个组件 class,您需要使用 Inject 属性
a public 属性,例如:
[Inject]
public Models.UserVisit UserVisit {get; set;}
希望这对您有所帮助...
我有一个 Blazor 项目,在 Program.cs(正式又名 Startup.cs)我添加了一个服务
builder.Services.AddSingleton<Models.UserVisit>();
我可以 use/access 像这样在 razor/blazor 页面上提供该服务 :
@inject Models.UserVisit userVisitObj
(UserVisit 是文件夹 Models 中的“普通”C# .cs Class)
我不知道如何在没有 razorpage(我会使用 @inject)的普通 C# Class 中使用这个“userVisitObj”?
如何在此处使用它(同一项目中的普通 C# Class 但没有 blazor/razor-componentpage):
public class UserModel
{
[BsonId]
public Guid Id { get; set; }
public CultureInfo UserCultureInfo { get; set; }
...
public UserModel()
{
[Inject]
Models.UserVisit userVisitObj; // THAT DOESN'T WORK -- ERROR
}
}
我希望我能把我的问题说清楚(请客气,我还是个初学者)。
您可以使用构造函数注入如下:
private readonly Models.UserVisit _userVisitObj
public UserModel(Models.UserVisit userVisitObj)
{
_userVisitObj = userVisitObj;
}
请注意,这适用于普通 C# classes。
如果您的 class 是一个组件 class,您需要使用 Inject 属性 a public 属性,例如:
[Inject]
public Models.UserVisit UserVisit {get; set;}
希望这对您有所帮助...