c# - 为每个浏览器选项卡添加单例
问题描述
我正在尝试实现 Web 应用程序并使用单例对象,这样我就可以注入它以在其他类中使用它。每次用户在浏览器中打开选项卡或类似内容时,我都想打开一个新对象。例如:
public class Singleton
{
public string Id{get;set;}
public Singleton(){Id=Guid.NewGuid().ToString();)
}
in startup:
services.AddSingleton<Singleton>(s=>new Singleton());
在其他一些类中:
public class OtherClass{
private readonly Singleton singleton;
public OtherClass(Singleton singleton)
{
this.singleton = singleton;
}
}
问题是每个选项卡都有相同的 ID...我需要为浏览器中的每个选项卡设置不同的 ID...
谢谢!
解决方案
您必须为要成为单例的类创建一个接口。您将其注册Startup.cs
为单身人士
public void ConfigureServices(IServiceCollection services)
{
services.AddSingleton<ISingleton, Singleton>();
}
然后您继续将单例接口注入OtherClass
public class OtherClass{
private readonly Singleton singleton;
public OtherClass(ISingleton singleton)
{
this.singleton = singleton;
}
希望这可以帮助
推荐阅读
- asp.net-mvc - Azure Ad B2C - 在 ASP .net MVC 应用程序中检索多个 Web API 的多个不记名令牌
- ios - 在 Swift 5 中更新 JSON 数组
- r - 参数不是数字或逻辑:在 R 中返回 NA - 如何修复
- css - 如何创建一个文本居中的引导带圆圈按钮
- git - 在 Visual Studio 2019 社区中克隆 Azure DevOps 存储库时遇到问题
- php - 将 textarea 行传输到数组 php
- python - 如何处理 Tensors 中的 INF 和 NAN 值?
- php - 如何使图像的名称成为会话变量?
- django - DRF 无法使用 PrimaryKeyRelatedField 上的视图名称解析超链接关系的 URL
- c# - unity没有显示问题,但还是报错