Autofac - 如何解析使用JSON配置注册的实例

时间:2017-09-21 21:09:35

标签: c#-4.0 autofac autofac-module autofac-configuration autofactory

我们的要求是为不同的用户定义线程使用不同的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 个答案:

答案 0 :(得分:0)

您正在注册两个具有相同服务类型的实例,并且只按类型解析一个 - 所以您所说的是预期的。你将无法通过这样的配置做你想做的事。

查看以下文档: