首页 > 其他分享 >Autofac register an instance for a interface for singleton

Autofac register an instance for a interface for singleton

时间:2023-05-16 19:12:15浏览次数:31  
标签:Core Autofac builder singleton instance interface logger loggerFactory public

 一个console app调用Core

var loggerFactory = LoggerFactory.Create(builder =>
            {
                builder.AddConsole();
                builder.AddSerilog();
            });
            builder.RegisterInstance(loggerFactory)
                .As<ILoggerFactory>()
                .SingleInstance();
        }
 var core = serviceProvider.GetRequiredService<Core>();

            logger?.Information($"程序开始运行");

            core.Test("Hello World!");

 

 

 

封装一个不依赖serilog的日志组件Core

public class Core
    {
        private readonly ILogger _logger;

        public Core(ILoggerFactory loggerFactory)
        {
            _logger = loggerFactory.CreateLogger(nameof(Core));
        }

        public void Test(string content)
        {
            
            _logger.LogInformation($"日志测试: {content}");
        }
    }

 

标签:Core,Autofac,builder,singleton,instance,interface,logger,loggerFactory,public
From: https://www.cnblogs.com/chucklu/p/17406543.html

相关文章

  • Unable to bind to http://localhost:xxxx on the IPv4 loopback interface: '以一种
    这个错误大概率是端口冲突, 这里不再赘述。具体(参考https://www.cnblogs.com/zhengdongdong/p/12001152.html)我这边的原因是运行端口在被排除端口范围中(参考https://gsw945.com/index.php/archives/33/)cmd运行 netshinterfaceipv4showexcludedportrangeprotocol=tcp......
  • 多态 instance of
       ......
  • IOC容器-Autofac
    Autofac是第三方IOC容器,是当前最流行的IOC容器。1.容器创建对象//创建一个容器建造者ContainerBuildercontainerBuilder=newContainerBuilder();//注册普通类containerBuilder.RegisterType<Honer>();//build一下,得到一个容器IContainercontainer=containerBuild......
  • Java 三方接口PHP写法;doHmacSHA2; 将字节数组转换成16进制字符串;Mac.getInstance;Hma
    先看一段Java代码,一个签名过程1packagecom.sixents.bss.filter;234importorg.apache.http.HttpEntity;5importorg.apache.http.NameValuePair;6importorg.apache.http.client.entity.UrlEncodedFormEntity;7importorg.apache.http.client.met......
  • 关于Class.forName(className).newInstance()介绍
    Class.forName(xxx.xx.xx) 返回的是一个类首先你要明白在java里面任何class都要装载在虚拟机上才能运行。这句话就是装载类用的(和new 不一样,要分清楚)。 至于什么时候用,你可以考虑一下这个问题,给你一个字符串变量,它代表一个类的包名和类名,你怎么实例化它?只有你提到的这个方......
  • 【javascript】typeof 和 instance of的差异
    typeof与instanceof都是判断数据类型的方法,区别如下:1.typeof会返回一个运算数的基本类型,instanceof返回的是布尔值2.instanceof可以准确判断引用数据类型,但是不能正确判断原始数据类型3.typeof虽然可以判断原始数据类型(null除外),但是无法判断引用数据类型(function除外)所以如......
  • abstract class和interface有什么区别?
    声明方法的存在而不去实现它的类被叫做抽象类(abstractclass),它用于要创建一个体现某些基本行为的类,并为该类声明方法,但不能在该类中实现该类的情况。不能创建abstract类的实例。然而可以创建一个变量,其类型是一个抽象类,并让它指向具体子类的一个实例。不能有抽象构造函数或抽象静......
  • [转]typeScript interface和type区别
    原文地址:https://www.jianshu.com/p/555e6998af36以下为截取的总结,详细请点击查看原文:总结interface和type很像,很多场景,两者都能使用。但也有细微的差别:不同点:扩展语法:interface使用extends,type使用‘&’同名合并:interface支持,type不支持。描述类型:对象、函数......
  • ts中interface转换class
    引在ts中interface可以表示具体的一种数据结构,但当我们需要将interface转换成class时,直接使用interface的话,会导致一些问题,比如interface中的属性无法被继承,所以我们需要将interface转换成class,这里介绍一种方法。例数据结构interfaceIPerson{name:strin......
  • instanceof向下转型判断
    https://www.cnblogs.com/SjhCode/p/instanceof.html引用原文链接:https://blog.csdn.net/YXXXYX/article/details/120205124概念:instanceof概念在多态中引出,因为在多态发生时,子类只能调用父类中的方法(编译时类型的方法),而子类自己独有的方法(运行时类型的方法)无法调用,如果强制调......