C# .net 注册依赖服务 循环依赖问题
使用 autofac 注册服务依赖
builder.RegisterType<DictionaryTypeService>().As<IDictionaryTypeService>().InstancePerDependency(); builder.RegisterType<SysDictTypeController>().As<ISysDictTypeController>().InstancePerDependency();
Lazy 注入: 使用 Lazy<T> 类型来延迟注入依赖,以解决循环依赖问题
public class DictionaryTypeService : ISysDictTypeService
{
private readonly Lazy<ISysDictTypeService> _sysDictDataService;
public DictionaryTypeService(Lazy<ISysDictTypeService> sysDictDataService)
{
_sysDictDataService = sysDictDataService;
}
// Other members and methods
}
Lazy<T> 是一种延迟加载的方式
var lazyInstance = new Lazy<ISysDictTypeService>(() => new DictionaryTypeService()); var instance = lazyInstance.Value; // 获取实例 instance.YourMethod(); // 调用方法
使用延迟加载时避免多次获取 Value: 确保你只获取一次 Value,否则会多次实例化对象。

浙公网安备 33010602011771号