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

石泉县城乡建设局网站论文收录网站排名

石泉县城乡建设局网站,论文收录网站排名,企业融资的意义,如何查询网站点击率IOC理解 IoC(Inversion of Control):即控制反转,这是一种设计思想,指将对象的控制权交给IOC容器,由容器来实现对象的创建、管理,程序员只需要从容器获取想要的对象就可以了。DI(Dependency Injection),即依…

IOC理解

IoC(Inversion of Control):即控制反转,这是一种设计思想,指将对象的控制权交给IOC容器,由容器来实现对象的创建、管理,程序员只需要从容器获取想要的对象就可以了。DI(Dependency Injection),即依赖注入,他是IoC的一种具体实现方式。

IOC代码实现

Model类
namespace IOCDemo.IOC
{[IOCService]internal class School{public string SchoolName { get; set; }public Student Student { get; set; }public void ShowMessage(){Console.WriteLine("创建School对象");Student.ShowMessage();}}internal class Student{public string StudentNo { get; set; }public string StudentName { get; set;}public void ShowMessage(){Console.WriteLine("创建Student对象");}}
}
IOC容器工程类

.Net8 IOC容器基本形态:
1、创建对象
2、存储对象 字典随机取对象,随机存对象性能高
3、获取对象
4、依赖注入(对象属性赋值)
5、对象过滤(特征)

using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
using System.Text;
using System.Threading.Tasks;namespace IOCDemo.IOC
{/// <summary>/// IOC工程/// 1、创建对象/// 2、存储对象 字典随机取对象,随机存对象性能高/// 3、获取对象/// 4、依赖注入(对象属性赋值)/// 5、对象过滤(特征)/// 总结:完成.Net8 IOC容器基本形态/// </summary>internal class IOCFactory{private Dictionary<string,Object> IOCS = new Dictionary<string,Object>();public IOCFactory() {//不能直接new对象,违背开闭原则(对扩展开发,对修改关闭,如果有新的类,需要修改IOC工厂类)Assembly assembly = Assembly.Load("IOCDemo");Type[] types = assembly.GetTypes();foreach (Type t in types){IOCService service=t.GetCustomAttribute<IOCService>();//5、过滤if (service != null){//1、创建对象object obj = Activator.CreateInstance(t);//同样违背开闭原则//PropertyInfo propertyInfo = t.GetProperty("SchoolName");//if (propertyInfo != null)//{//    propertyInfo.SetValue(obj, new Student());//}//4、依赖注入PropertyInfo[] properties = t.GetProperties();foreach (var property in properties){foreach (var type in types){if (property.PropertyType.Equals(type)){object value = Activator.CreateInstance(type);property.SetValue(obj, value);}}}//2、存储对象IOCS.Add(t.FullName, obj);}}}/// <summary>/// 3、获取IOC对象/// </summary>/// <param name="name"></param>/// <returns></returns>public object GetObject(string name){return IOCS[name];}}
}
自定义特性类
namespace IOCDemo.IOC
{/// <summary>/// 自定义特性/// </summary>[AttributeUsage(AttributeTargets.Class)]internal class IOCService:Attribute{}
}
实现
using IOCDemo.IOC;IOCFactory iOCFactory = new IOCFactory();
School school = (School)iOCFactory.GetObject("IOCDemo.IOC.School");
school.ShowMessage();
输出

实例代码

https://download.csdn.net/download/lvxingzhe3/89967307

http://www.yayakq.cn/news/511935/

相关文章:

  • 如何做网站访百度联盟网站首页布局设计教程
  • 广州联亨科技网站建设jsp怎么做网站的删除
  • 网站美化教程下载vps云服务器
  • 架设网站需要什么网站开发中 敬请期待
  • 网站手机版建设成都网站建站
  • wordpress百度站长验证给网站添加关键词
  • 本地郑州网站建设深圳定制开发网站
  • 最适合企业网站建设的cms系统wordpress文章meta
  • app建站平台河北建设网站公司
  • 西宁网站建设优化吉林省电子健康卡app
  • 网站seo最新优化方法雄县网站建设
  • app介绍网站模板免费下载自己制作软件平台
  • 东莞教育团购网站建设wordpress 地图html
  • 北京公司网站设计价格服务周到的响应式网站
  • 怎么用WordPress快速建站手机特殊网站
  • 倒v是网站设置的还是作家自己php怎么做网页
  • 临沧网站制作国字型网站建设布局
  • 网站建设要架服务器广州有建网站的公司吗
  • 网站建设案例ppt济南网站建设就选搜点网络ok
  • 海南省建设信息官方网站白城做网站
  • 中铁建设集团门户网站登陆网络推广引流是什么意思
  • 在网站建设会议上的讲话网站数据搬家
  • jsp网站开发什么框架时尚网站策划
  • 网站提权安徽建设工程信息网固镇县
  • 如何申请免费网站域名自己公司做公益网站怎么弄
  • 免费网站软件推荐正能量做单页网站的软件
  • 如何进行网站调试百度刷自己网站的关键词
  • 网站都有备案号吗购物网站的建设与维护
  • 备案 网站 收录网络科技公司图片
  • 网站标题一样站长工具seo综合查询推广