asp.net-core - CaslteWindsor LifestyleScoped 在请求之间使用 SAME 实例
问题描述
项目是使用 CastleWindsor for IoC 的 ASP.NET
我已经像这样注册了继承 DBContext 的类
IoCcontainer.Register(Component.For<IMyContext>().ImplementedBy<MYContext>().LifestyleScoped())
我在 Startup.cs(ASP.net 的)中执行此操作。在方法中:ConfigureServices 我也调用
IoCcontainer.BeginScope();
用同样的方法。
但是当我运行应用程序并调用不同页面或同一页面两次时,我得到了相同的 MyContext 实例。我知道这是因为在 DbContect.[entity].Local; 我有以前的请求实体实例,我不应该有。
那么我应该在哪里打电话
IoCcontainer.BeginScope();
将范围缩小到单个请求?
我尝试过使用 Core DI
services.AddScoped<IMyContext, MyContext>()
但是我在同一个请求中为每个 Dao 类实例获得了不同的 MyContext 实例。
不介意知道如何配置 Core,以便所有 Dao 类实例使用相同的实例
问候
格雷格
解决方案
解决了 DBContext 多实例问题,即 dbContext 类所需的无参数构造函数
推荐阅读
- pandas - 'Line2D' 对象没有属性 'kind'
- ubuntu - 使用 virt-install 安装 Ubuntu Server 18.04 但挂起
- php - 警告:strpos() 期望参数 1 是字符串,调用学说的 getRespository() 方法时给出的对象
- python - 想要有效地从 pyspark 中的字典数组派生一个数组
- mysql - 与组 concat 相对,根据 ID 的数量平均一列
- typescript - Typescript 类型推断在条件类型中不起作用
- flutter - Flutter/Dart:带参数的 getter
- sql - 如何为同一张表中的其他列创建键?
- python - 将实例“计数”合并到加入字符串的列表中(Python3)
- r - 如何根据值列表拆分长字符串中的单词以在 R 中创建新数据框?