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

C# , .netWebApi, WPF 用特性实现类似Java 的Ioc 自动装配@Autowired

写C# 一直很羡慕Java的@Autowired 自动装配. 因为C# 必须手动在Ioc里注册

之前用接口实现了自动注册IOC, 总是觉得美中不足, 毕竟没有真正实现用注解/特性实现自动注入, 这次我们来实现一个用特性注入Ioc的扩展方法.

namespace MyCode.BLL.Service.Ioc
{/// <summary>/// 类型的生命周期枚举/// </summary>public enum Lifetime{/// <summary>/// 单例/// </summary>Singleton,/// <summary>/// 多例/// </summary>Transient,Scoped}/// <summary>/// 标注类型的生命周期、是否自动初始化/// </summary>[AttributeUsage(AttributeTargets.Class, AllowMultiple = false)]public class ExposedServiceAttribute : Attribute{public Lifetime Lifetime { get; set; }public bool AutoInitialize { get; set; }public Type[] Types { get; set; }public ExposedServiceAttribute(Lifetime lifetime = Lifetime.Transient, params Type[] types){Lifetime = lifetime;Types = types;}}
}
using Microsoft.Extensions.
http://www.lryc.cn/news/225304.html

相关文章:

  • 3DMAX汽车绑定动画模拟插件MadCar疯狂汽车使用教程
  • 比较PID控制和神经网络控制在机器人臂上的应用
  • ubuntu16.04 交叉编译 mbedtls
  • 基于遗传算法优化的直流电机PID控制器设计
  • 大数据-之LibrA数据库系统告警处理(ALM-12036 license文件即将过期)
  • 关于Android Studio中开发Flutter配置
  • 大容量疯了!居然想把磁带放到硬盘,100TB+是否可以实现?
  • C++之map的介绍
  • 非常好用的组件库【semi.design】
  • Semantic-Guided Zero-Shot Learning for Low-Light ImageVideo Enhancement
  • 分享Python的十大库,这你一定得知道!
  • react: hooks
  • Flink(二)【Flink 部署模式】
  • 在使用ubuntu18.04的时候使用阿里源或者清华源后安装mysql5.7时出现dpkg提示的错误信息
  • 引用(类名后加符号)和指针的区别
  • 如何查看网站的https的数字证书
  • 关于maven读取settings.xml文件的优先级问题
  • 城市内涝积水监测,万宾科技内涝预警监测系统
  • JavaEE初阶学习:Linux 基本使用和 web 程序部署
  • 摔杯算法(要求用最少的测试次数找出恰巧会使杯子破碎的楼层。)
  • centos7安装docker容器
  • 【二叉树】如何构建一个包含大量随机数节点的二叉树测试用例
  • 防火防盗防小人 使用 Jasypt 库来加密配置文件
  • Spring Cloud学习(二)【Eureka注册中心】
  • 数据分析实战 | 线性回归——女性身高与体重数据分析
  • python回文日期 并输出下一个ABABBABA型回文日期
  • Zotero拓展功能之Zotero Style
  • 小程序提交表单之后,清除表单form
  • Java程序设计实验5 | Java API应用
  • 自媒体项目详述