asp.net答辩做网站,wordpress 商品比价,怎么让关键词快速排名首页,免费创建社区平台写C# 一直很羡慕Java的@Autowired 自动装配. 因为C# 必须手动在Ioc里注册
之前用接口实现了自动注册IOC, 总是觉得美中不足, 毕竟没有真正实现用注解/特性实现自动注入, 这次我们来实现一个用特性注入Ioc的扩展方法.
namespace MyCode.BLL.Service.Ioc
{/// summary/…写C# 一直很羡慕Java的@Autowired 自动装配. 因为C# 必须手动在Ioc里注册
之前用接口实现了自动注册IOC, 总是觉得美中不足, 毕竟没有真正实现用注解/特性实现自动注入, 这次我们来实现一个用特性注入Ioc的扩展方法.
namespace MyCode.BLL.Service.Ioc
{/// summary/// 类型的生命周期枚举/// /summarypublic enum Lifetime{/// summary/// 单例/// /summarySingleton,/// summary/// 多例/// /summaryTransient,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.