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

建立网站需要多少钱萍畜湖南岚鸿首选公司网站条形码如何做

建立网站需要多少钱萍畜湖南岚鸿首选,公司网站条形码如何做,wordpress门户主题 门户一号下载,中卫网站设计公司招聘1.概述 autoFac的生命周期 序号名称说明1InstancePerDependency每次请求都创建一个新的对象2InstancePerLifetimeScope同一个Lifetime生成的对象是同一个实例3SingleInstance每次都用同一个对象 2.注 InstancePerLifetimeScope 同一个Lifetime生成的对象是同一个实例#x…1.概述 autoFac的生命周期 序号名称说明1InstancePerDependency每次请求都创建一个新的对象2InstancePerLifetimeScope同一个Lifetime生成的对象是同一个实例3SingleInstance每次都用同一个对象 2.注 InstancePerLifetimeScope 同一个Lifetime生成的对象是同一个实例这个理解起来有点不确定什么叫“同一个Lifetime生成的对象”就是生成过的几次比如在一个程序中只调用一次生成。 var builder new ContainerBuilder();builder.RegisterTypeA().AsIA().InstancePerLifetimeScope();IContainer container builder.Build(); 只调用 一次上面的注册后面无论多少次获取都是一个对象。 IA a container.ResolveIA(); 试验代码 class T2{static IContainer container;static T2(){var builder new ContainerBuilder();builder.RegisterTypeA().AsIA().InstancePerLifetimeScope();container builder.Build();}public void fun(){for (int i 0; i 3; i){IA a container.ResolveIA();a.fun();}}} 3.那么“同一个Lifetime生成的对象”指创建过一次那么这个创建指的是“InstancePerLifetimeScope”还是“Build” 于是有了下面的试验“InstancePerLifetimeScope”一次但是每次获取对象前都“Build” builder new ContainerBuilder();builder.RegisterTypeA().AsIA().InstancePerLifetimeScope(); var container builder.Build(); 结果报了如下异常 异常 System.InvalidOperationException:“Build() or Update() can only be called once on a ContainerBuilder 异常翻译 System.InvalidOperationException: Build()或Update()只能被ContainerBuilder调用一次 只能调用一次那么“InstancePerLifetimeScope”和“Build”的调用次数只能是相同的要么都同时一次要么都同时多次。 完整代码 class T3{static ContainerBuilder builder;static T3(){builder new ContainerBuilder();builder.RegisterTypeA().AsIA().InstancePerLifetimeScope();}public void fun(){var container builder.Build();for (int i 0; i 3; i){IA a container.ResolveIA();a.fun();}}} 4.另外两种生命周期都很好理解SingleInstance相当于单件“InstancePerDependency”相当于每次都创建。如果没有描述生命周默认也是这个builder.RegisterTypeA().AsIA() InstancePerDependency(每次使用都是一个新的对象) static void Main(string[] args){Console.WriteLine();var builder new ContainerBuilder();builder.RegisterTypeA().AsIA().InstancePerDependency();IContainer container builder.Build();for (int i 0; i 3; i){IA a container.ResolveIA();a.fun();}Console.ReadKey();} SingleInstance多次获取使用的是一个对象 static void Main(string[] args){Console.WriteLine();var builder new ContainerBuilder();builder.RegisterTypeA().AsIA().SingleInstance();IContainer container builder.Build();for (int i 0; i 3; i){IA a container.ResolveIA();a.fun();}Console.ReadKey();} 6.对比试验 生命周期对象中创建类中创建InstancePerDependency每次获取的都是新对象每次获取的都是新对象InstancePerLifetimeScope在创建对象的容器中是一个对象每次获取的都是新对象SingleInstance在创建对象的容器中是一个对象每次获取的都是新对象 这里创建指build var builder new ContainerBuilder();builder.RegisterTypeA().AsIA())container builder.Build(); 这里的使用指resolve IA a container.ResolveIA();a.fun(); 在对象中创建指在构造函数中创建每创建一个对象就创建一次。 在类中创建指在静态类中创建无论多少个类指创建一次。 代码 using Autofac; using Autofac.Builder; using System; using System.Collections.Generic;namespace autoFac生命周期2 {class Program{static void Main(string[] args){Console.WriteLine();Program p new Program();p.main();Console.ReadKey();}private void main(){foreach (EnumLeftFun enumLeftFun in Enum.GetValues(typeof(EnumLeftFun))){T.enumLeftFunMy enumLeftFun;Console.WriteLine(\n------------enumLeftFun--------------------------------);test1();test2();}//test3();}private void test1(){Console.WriteLine( test1 每个对象创建一次);T1 t1 new T1();t1.fun();T1 t2 new T1();t2.fun();}private void test2(){Console.WriteLine( test2 每个类创建一次);T2 t21 new T2();t21.fun();T2 t22 new T2();t22.fun();}private void test3(){T3 t3 new T3();t3.fun();T3 t31 new T3();t31.fun();}class T2 : T{static IContainer container;static T2(){var builder new ContainerBuilder();T.leftSelect(builder.RegisterTypeA().AsIA());container builder.Build();}public void fun(){for (int i 0; i 3; i){IA a container.ResolveIA();a.fun();}}}class T3{static ContainerBuilder builder;static T3(){builder new ContainerBuilder();T.leftSelect(builder.RegisterTypeA().AsIA());}public void fun(){var container builder.Build();for (int i 0; i 3; i){IA a container.ResolveIA();a.fun();}}}class T1:T{IContainer container;public T1(){var builder new ContainerBuilder();leftSelect(builder.RegisterTypeA().AsIA());builder.RegisterTypeA().AsIA().SingleInstance();container builder.Build();}public void fun(){for (int i 0; i 3; i){IA a container.ResolveIA();a.fun();}}}delegate IRegistrationBuilderIA, ConcreteReflectionActivatorData, SingleRegistrationStyle delegateFun(IRegistrationBuilderIA, ConcreteReflectionActivatorData, SingleRegistrationStyle registrationBuilder);public enum EnumLeftFun{InstancePerDependency,InstancePerLifetimeScope,SingleInstance}class T{static DictionaryEnumLeftFun, delegateFun keyValuePairs new DictionaryEnumLeftFun, delegateFun();public static EnumLeftFun enumLeftFunMy;static T(){keyValuePairs.Add(EnumLeftFun.InstancePerDependency, InstancePerDependency);keyValuePairs.Add(EnumLeftFun.InstancePerLifetimeScope, InstancePerLifetimeScope);keyValuePairs.Add(EnumLeftFun.SingleInstance, SingleInstance);}static public IRegistrationBuilderIA, ConcreteReflectionActivatorData, SingleRegistrationStyle leftSelect(IRegistrationBuilderIA, ConcreteReflectionActivatorData, SingleRegistrationStyle registrationBuilder){return keyValuePairs[enumLeftFunMy](registrationBuilder);}static protected IRegistrationBuilderIA, ConcreteReflectionActivatorData, SingleRegistrationStyle InstancePerDependency(IRegistrationBuilderIA, ConcreteReflectionActivatorData, SingleRegistrationStyle registrationBuilder){return registrationBuilder.InstancePerDependency();}static protected IRegistrationBuilderIA, ConcreteReflectionActivatorData, SingleRegistrationStyle InstancePerLifetimeScope(IRegistrationBuilderIA, ConcreteReflectionActivatorData, SingleRegistrationStyle registrationBuilder){return registrationBuilder.InstancePerLifetimeScope();}static protected IRegistrationBuilderIA, ConcreteReflectionActivatorData, SingleRegistrationStyle SingleInstance(IRegistrationBuilderIA, ConcreteReflectionActivatorData, SingleRegistrationStyle registrationBuilder){return registrationBuilder.SingleInstance();}}}interface IA{void fun();}class A : IA{static int index 0;private int myIndex;public A(){this.myIndex index;}public void fun(){Console.WriteLine(myIndex: myIndex);}} }运行结果 ------------InstancePerDependency--------------------------------test1 每个对象创建一次 myIndex:1 myIndex:1 myIndex:1 myIndex:2 myIndex:2 myIndex:2test2 每个类创建一次 myIndex:3 myIndex:4 myIndex:5 myIndex:6 myIndex:7 myIndex:8------------InstancePerLifetimeScope--------------------------------test1 每个对象创建一次 myIndex:9 myIndex:9 myIndex:9 myIndex:10 myIndex:10 myIndex:10test2 每个类创建一次 myIndex:11 myIndex:12 myIndex:13 myIndex:14 myIndex:15 myIndex:16------------SingleInstance--------------------------------test1 每个对象创建一次 myIndex:17 myIndex:17 myIndex:17 myIndex:18 myIndex:18 myIndex:18test2 每个类创建一次 myIndex:19 myIndex:20 myIndex:21 myIndex:22 myIndex:23 myIndex:24
http://www.w-s-a.com/news/532892/

相关文章:

  • 网站推广适合女生做吗网站如何开启gzip压缩
  • 做外单阿里的网站建站平台那个好
  • 全国性质的网站开发公司关于网站开发的请示
  • 齐齐哈尔住房和城乡建设局网站生物科技公司网站模板
  • 中国建设协会官方网站前端培训的机构
  • 网站建设套餐是什么北京孤儿院做义工网站
  • 网站如何做微信支付链接做暧小视频xo免费网站
  • SEO案例网站建设重庆建站模板平台
  • 上海seo网站推广公司wordpress 小米商城主题
  • 搭建服务器做网站什么网站可以请人做软件
  • 上海建筑建材业网站迁移公家网站模板
  • 仿制别人的网站违法吗网站防火墙怎么做
  • 杨浦网站建设 网站外包公司如何进行网络推广
  • wordpress+仿站步骤超详细wordpress常用函数
  • 浙江手机版建站系统哪个好怎样黑进别人的网站
  • 企业网站搜索引擎推广方法装修网络公司
  • 网站运营优化建议wordpress 添加媒体
  • 用asp.net做网站计数器施工企业会计的内涵
  • 网站被黑咋样的网站建设 设计业务范围
  • 网站开发学哪种语言网站编辑器失效
  • WordPress插件提示信息江阴网站优化
  • 网站开发用的软件如何做网站内容管理
  • 扬州网站建设公司网站推广是什么岗位
  • 双线网站管理咨询公司是做什么
  • asia域名的网站贵州光利达建设工程有限公司局网站
  • 梅州南站济南做网络安全的公司
  • 网站源代码 phpseo营销推广费用
  • 南京专业制作网站深圳整装装修公司排名
  • 网站制作在哪里比较好网页设计的要点有哪些
  • 自己做网站原始代码高端品牌服装