错误:
配置无效。为类型IUserService创建实例失败。配置无效。 PatientService类型直接或间接取决于其自身。循环图包含以下类型:PatientService - > ConfigService - > PatientService。
代码:
var container = new Container();
container.Register<IUserService, UserService>();
container.Register<IPatientService, PatientService>();
container.Register<IConfigService, ConfigService>();
container.RegisterMvcControllers(Assembly.GetExecutingAssembly());
container.Verify();
PatientService:
public class PatientService : IPatientService
{
private readonly IPatientRepository _patientRepository;
private readonly ConfigService _configService;
private readonly UserService _userService;
public PatientService(
PatientRepository patientRepository,
ConfigService configService,
UserService userService)
{
_patientRepository = patientRepository;
_configService = configService;
_userService = userService;
}
}
的ConfigService:
public class ConfigService : IConfigService
{
private readonly PatientService _patientService;
private readonly IPatientRepository _patientRepository;
public ConfigService(
PatientService patientService, PatientRepository patientRepository)
{
_patientService = patientService;
_patientRepository = patientRepository;
}
}
我必须在ConfigService和ConfigService中使用PatientService对象 PatientService中的对象。有没有办法解决这个问题?
答案 0 :(得分:3)
配置无效。为类型创建实例 IUserService失败。配置无效。类型 PatientService直接或间接取决于自身。该 循环图包含以下类型:PatientService - &gt; ConfigService - &gt; PatientService。
'show_option_all' => 'All',
使用PatientService
的引用。 ConfigService
使用ConfigService
您需要在源代码中的某处删除PatientService
。因为你在这里添加了一个循环依赖,这不是一个好习惯,所以你需要检查你的设计。