Autofac - Как разрешить экземпляры, зарегистрированные с использованием конфигурации JSON
Наше требование - иметь разные экземпляры Logger для разных пользовательских потоков.
{
"defaultAssembly": "Framework",
"components": [
{
"type": "SynapseMiddleware.Core.Framework.LoggerServicePerContext, Framework",
"services": [
{
"type": "SynapseMiddleware.Core.Framework.ILoggerServicePerContext, Framework"
}
],
"parameters": {
"loggerConfig": "18105"
}
},
{
"type": "SynapseMiddleware.Core.Framework.LoggerServicePerContext, Framework",
"services": [
{
"type": "SynapseMiddleware.Core.Framework.ILoggerServicePerContext, Framework"
}
],
"parameters": {
"loggerConfig": "18122"
}
}
]}
Я создал этот JSON и зарегистрировал его как модуль, чтобы для каждого из значений была индивидуальная регистрация - 18122 и 18105. Но я не понимаю, как мне разрешить их во время выполнения и где именно.
Я создал 2 папки, но регистратор не пишет в свой файл, он также пишет в другой файл. короче говоря, экземпляр, который я получаю путем разрешения, не является экземпляром для этого конкретного значения.
Если я вставлю это в конструктор, только 18105 будет решен.
Может ли кто-нибудь помочь, пожалуйста!
Спасибо!
1 ответ
Вы регистрируете два экземпляра одного и того же типа сервиса и решаете только один - по типу - так, что вы говорите, ожидается. Вы не сможете делать то, что вы хотите через конфигурацию, как это.
Проверьте эти документы:
- Конфигурация - может рассказать вам о том, что конфигурация может и не может сделать
- Выбор услуги в зависимости от контекста - объясняет способы решения вашей проблемы