当前位置: 首页 > news >正文

wordpress follow沧州网站优化

wordpress follow,沧州网站优化,济南网站建设求职,网站域名申请了该怎么做本文内容大量参考了:https://www.cnblogs.com/Chary/p/11351457.html 而且这篇文章总结的非常好。 1、注意想使用Autofac,Autofac是一个轻量级、‌高性能的依赖注入(‌DI)‌框架,‌主要用于.NET应用程序的组件解耦和…

本文内容大量参考了:https://www.cnblogs.com/Chary/p/11351457.html  而且这篇文章总结的非常好。

1、注意想使用Autofac,Autofac是一个轻量级、‌高性能的依赖注入(‌DI)‌框架,‌主要用于.NET应用程序的组件解耦和管理。‌‌

        核心思想‌:‌将对象之间的依赖关系从应用程序中分离出来,‌以降低代码的耦合度,‌提高可维护性和可测试性。‌

‌        主要特点‌:‌

                轻量级:‌核心库只有几个DLL文件,‌易于与其他框架集成,‌对应用程序性能无影响。‌

                灵活性:‌提供多种注册方式,‌如XML配置文件、‌代码配置和属性注解等。‌

                高性能:‌在实例化对象时,‌能比其他DI框架更快地找到并创建所需的依赖项。‌

                生命周期管理:‌提供多种生命周期管理选项,‌如瞬态、‌作用域和单例等。‌

                AOP支持:‌可轻松与AOP框架集成,‌实现横切关注点的统一处理。

2、废话结束,我们直接上代码。我安装的是Autofac 3.0.0

2.1、整个官网示例。

using Autofac;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Autofac.Features.Indexed;namespace ConsoleAppAutofac
{class Program{private static IContainer Container { get; set; }static void Main(string[] args){var builder = new ContainerBuilder();//准备容器builder.RegisterType<ConsoleOutput>().As<IOutput>();//注册对象builder.RegisterType<TodayWriter>().As<IDateWriter>();//注册对象builder.RegisterInstance(new Dog());//实例注入builder.RegisterInstance(Singleton.Instance).ExternallyOwned();//将单例对象托管到IOC容器builder.Register(c => new Person() { Name = "张三", Age = 22 }); //Lambda表达式注入builder.RegisterGeneric(typeof(List<>));//注入泛型类builder.RegisterType<Doge>().As<IAnimal>();//映射对象,IAnimal被多次注册,以最后注册为准builder.RegisterType<Cat>().As<IAnimal>().PreserveExistingDefaults();//指定Cat为非默认值,PreserveExistingDefaults()修饰符,可以指定某个注册为非默认值//一个接口被多个实例对象实现,可以进行命名,注入的时候使用名字进行区分builder.RegisterType<Doge>().Named<IAnimal>("doge");builder.RegisterType<Doge>().Named<IAnimal>("pig");//Autofac.Features.Indexed.IIndex<K,V>是Autofac自动实现的一个关联类型。使用IIndex<K,V>作为参数的构造函数从基于键的服务中选择需要的实现builder.RegisterType<Doge>().Keyed<IAnimal>(AnumaType.Doge);//映射对象builder.RegisterType<Pig>().Keyed<IAnimal>(AnumaType.Pig);//映射对象builder.RegisterType<Pig>().Keyed<IAnimal>(AnumaType.Cat);//映射对象//自动装配,从容器中的可用对象中选择一个构造方法来创建对象,这个过程叫做自动装配。它是通过反射实现的,所以实际上容器创造对象的行为比较适合用在配置环境中//Autofac默认从容器中选择参数最多的构造函数。如果想要选择一个不同的构造函数,就需要在注册的时候就指定它://这种写法将指定调用Person(string)构造函数,如该构造函数不存在则报错。builder.RegisterType<Person>().UsingConstructor(typeof(string));//额外的构造函数参数://有两种方式可以添加额外的构造函数参数,在注册的时候和在检索的时候。在使用自动装配实例的时候这两种都会用到。//注册时添加参数,使用WithParameters()方法在每一次创建对象的时候将组件和参数关联起来。List<NamedParameter> pars = new List<NamedParameter>() { new NamedParameter("Age", 20), new NamedParameter("Name", "张三") };builder.RegisterType<Person>().WithParameters(pars);Container = builder.Build();//容器创建完毕List<string> list = Container.Resolve<List<string>>();var dog = Container.Resolve<IAnimal>();//通过IOC容器创建对象dog.SayHello();var pig = Container.ResolveNamed<IAnimal>("pig");//通过IOC容器创建对象pig.SayHello();var animal = Container.Resolve<IIndex<AnumaType, IAnimal>>();var cat = animal[AnumaType.Cat];cat.SayHello();WriteDate();Console.ReadLine();}public static void WriteDate(){using (var scope = Container.BeginLifetimeScope()){var writer = scope.Resolve<IDateWriter>();//通过IOC容器创建对象writer.WriteDate();//调用对象的方法}}}/// <summary>/// 设置枚举/// </summary>public enum AnumaType{Doge,Pig,Cat}public interface IOutput{void Write(string content);}public class ConsoleOutput : IOutput{public void Write(string content){Console.WriteLine(content);}}public interface IDateWriter{void WriteDate();}public class TodayWriter : IDateWriter{private IOutput _output;public TodayWriter(IOutput output){this._output = output;}public void WriteDate(){this._output.Write(DateTime.Today.ToShortDateString());}}public class Dog{public void Say(){Console.WriteLine("汪汪汪");}}public interface IAnimal{void SayHello();}public class Doge : IAnimal{public void SayHello(){Console.WriteLine("我是小狗,汪汪汪~");}}public class Cat : IAnimal{public void SayHello(){Console.WriteLine("我是小猫,喵喵喵~");}}public class Pig : IAnimal{public void SayHello(){Console.WriteLine("我是小猪,呼呼呼~");}}public class Person{ public Person(){}public Person(string name){Name = name;}public Person(string name, int age):this(name){Age = age;}public string Name { get; set; }public int Age { get; set; }}public class Singleton{// 私有静态实例,‌初始时为nullprivate static Singleton instance = null;// 私有构造函数private Singleton() { }// 公共静态方法,‌提供全局访问点public static Singleton Instance{get{if (instance == null){instance = new Singleton();}return instance;}}}}

输出结果如下图。

http://www.ritt.cn/news/25798.html

相关文章:

  • 网站支付怎么做优化培训课程
  • 速冻蔬菜做哪个国际网站好杭州优化商务服务公司
  • DW做网站的步骤百度优化大师
  • 杭州网站设计我选柚v米科技搜索引擎优化培训中心
  • godaddy域名注册北京seoqq群
  • 西安到北京百度seo排名优化教程
  • 关于制作网站的方案做seo排名
  • 企业网站源码 企业网站管理系统如何去推广自己的产品
  • 研发外包公司重庆网站seo外包
  • 软件开发流程的具体内容百度怎么优化关键词排名
  • 网站本地环境搭建如何自己编写网站
  • 怎么自己用手机做网站百度管理员联系方式
  • 网站子域名新东方教育培训机构
  • 成都 网站建设培训网站点击量与排名
  • 台州网站哪家专业百度营销app
  • 手机建站cms系统seo优化实训报告
  • 网站建设制作流程如何营销推广自己的产品
  • 委托别人做网站 域名所有权市场调研的四个步骤
  • 福州做彩票app网站阻断艾滋病的药有哪些
  • 太原网站模板公司磁力搜索器 磁力猫
  • 网站建设对企业很重要天津百度搜索排名优化
  • iis发布网站后无法加载dll现在推广平台哪家最好
  • 网站摇奖活动怎么做下载百度app到手机上
  • seo网站推广优化公司网络营销到底是干嘛的
  • 湖州做网站seo实战培训机构
  • 小程序搭建是什么意思seo网站优化方法
  • 自建网站编程信息流广告推广
  • 杭州市拱墅区住房与建设局网站seo比较好的公司
  • 网上书店电子商务网站建设亚马逊提升关键词排名的方法
  • 评价一个网站设计的好坏友情链接检索数据分析