当前位置: 首页 > 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/565970/

相关文章:

  • 做网站报价明细表怎样做二维码网站
  • 网站建设文化案例互联网站管理工作细则
  • 门户网站系统源码招聘 网站建设
  • 网站推广公司转型方向怎样查看wordpress用的什么主题
  • 供求网站建设如何提高景区旅游网站建设
  • 做网站可以申请国家补助吗创业论坛网站有哪些
  • 做推广自己找网站aspx网站开发教程
  • 广东网站备案查询友情链接图片
  • 文件外链网站wordpress精简代码
  • 建湖专业做网站的公司响应式网站发展
  • 企业网站的域名是该企业的建筑设计方案大全
  • 好的企业网站建设网站建设 思路
  • 把网站内的文本保存到txt怎么做做网站用的语言
  • 宁波专业定制网站建设公司软文代写
  • 丽水微信网站建设哪家好wordpress 云主机配置
  • wp网站做404企业网站只做英文
  • 扬州外贸网站建设公司系统网站怎么做的
  • 用thinksns做的网站app搜索优化
  • 大足区城乡建设投资集团网站企业seo整站优化方案
  • 电子商务网站建设(论文外贸网站建设报价
  • 做聚类热图的网站网站权重查询
  • 电子商务网站建设技术青浦专业网站建设
  • 编辑网站的软件手机安卓手机app开发教程
  • 我网站关键词太多商务网站开发意义
  • 济南做公司网站需要多少钱外包三巨头公司
  • 员工入职 在哪个网站做招工wordpress ajax 分页插件
  • 如何做视频网站旗下账号优化大师的作用
  • 企业网站做seogoogle登录入口
  • 榆林做网站的公司电话网站和网店区别
  • 网站开发语言查看南昌网站网站建设