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

个人网站介绍怎么写2022最新永久地域网名

个人网站介绍怎么写,2022最新永久地域网名,wordpress实时预览,四平网络推广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/157508/

相关文章:

  • 重庆手机网站推广价格wordpress 授权插件
  • 网站如何强制修改主页 源码小刘网站建设
  • 左侧导航网站什么网站可以做锦鲤活动
  • 快速做网站服务好手机端网页设计尺寸规范
  • 科技创新网站建设策划书wordpress手机发布时间
  • 淄博便宜网站设wordpress 模拟登陆
  • 职业教育网站建设可行性报告茶叶电子商务网站建设的结论
  • 呼和浩特制作网站南宁网站开发制作
  • 网站系统有哪些app企业网站模板
  • 为什么百度搜索不到我的网站用c语言做网站
  • 筹划建设智慧海洋门户网站平面设计学生作品集
  • 优化网站排名推广中国电建成都设计院
  • 如何提高网站安全自己做soho需要做网站吗
  • 如何建设企业网站策划品牌全案
  • 网站建好以后每年都续费么wordpress 多人编辑器
  • 如何建手机销售网站怎么做小说推广挣钱
  • 上虞区住房和城乡建设局网站广告设计制作工作室
  • 网页和网站设计asp.net做网站的步骤
  • 什么软件可以刷网站排名太原seo建站
  • 如何做自助搜券网站湖南3合1网站建设
  • 阿里云腾讯云网站建设网站建设 微信微博外包
  • 网站域名设计方案html网页模板怎么使用
  • 福建省建设职业注册资格管理中心网站网页制作实训内容
  • 0基础多久学会网站架构wordpress无法批量管理
  • wordpress版权图片乐陵seo网站优化
  • 石家庄网站建设汉狮怎么样安全的网站建设服务
  • 如何建立自己网站视频教程怎么样才能把网站关键词做有排名
  • 鄂州市网站设计网站的关键点
  • 淘宝网站如何在邮件里做超链接克隆网站后怎么做
  • 用Off做网站高校网站平台建设