首页 > 其他分享 >聊一聊如何结合Microsoft.Extensions.DependenyInjection和Castle.Core

聊一聊如何结合Microsoft.Extensions.DependenyInjection和Castle.Core

时间:2024-01-13 20:22:50浏览次数:28  
标签:Core DependenyInjection 聊一聊 Extensions Castle Microsoft

聊一聊如何结合Microsoft.Extensions.DependenyInjection和Castle.Core

  合集 - 聊一聊如何整合Microsoft默认的Ioc容器和Castle.Core(4)   1.聊一聊如何整合Microsoft.Extensions.DependencyInjection和Castle.Core(二)01-12 2.聊一聊如何结合Microsoft.Extensions.DependenyInjection和Castle.Core01-12 3.聊一聊如何整合Microsoft.Extensions.DependencyInjection和Castle.Core(三)01-124.整合Microsoft.Extensions.DependencyInjection和Castle.Core(完结篇)01-13 收起  

.net下 aop的实现AspectCore+Microsoft.Extensions.DependenyInjection、Autofac+Castle 、DoraInterception+Microsoft.Extensions.DependenyInjection,但是Microsoft.Extensions.DependenyInjection和Castle.Core却鲜有人谈起,本文聊一聊“聊一聊如何结合Microsoft.Extensions.DependenyInjection和Castle.Core”

Castle.Core的代理核心对象ProxyGenerator ,原理类似于java的CGLIB ,对代理目标对象的方法进行覆写以实现代理的目标,本文的思路就从如何获取目标对象然后使用proxygenerator 生成代理实例重新塞入容器说起,

对象的获取我们从IServiceCollection说起,该类可以看做一个ServiceDescriptor的集合,ServiceDescritor 描述了对象生成的三种形式,首先是ServiceType我们认为是服务接口可以是接口也可以是具体的类

 service.AddTransient<ServiceType,ImpelentationType>(); ServiceType就是服务类,该示例代码ServiceDescription的第一种形式ServiceType+ImplementionType,

 services.AddTransient<ServiceType>(new ImplementationType()) 假设ImplementionType具有无参构造,我们可以以如上形式去生成ServiceDescriptor:ServiceType+ImplementationInstance

 services.AddTransient<ServiceType>(sp=>new ImplementationType()) 如上代码描述了一种最普适的注入方式 ServiceType+工厂

如上就是我们获取原始对象要处理的三种情况,5点,要下班了,先说到这边,下回继续

标签:Core,DependenyInjection,聊一聊,Extensions,Castle,Microsoft
From: https://www.cnblogs.com/sexintercourse/p/17962874

相关文章

  • 聊一聊 .NET高级调试 中必知的符号表
    一:背景1.讲故事在高级调试的旅行中,发现有不少人对符号表不是很清楚,其实简而言之符号表中记录着一些程序的生物特征,比如哪个地址是函数(签名信息),哪个地址是全局变量,静态变量,行号是多少,数据类型是什么等等,目的就是辅助我们可视化的调试,如果没有这些辅助我们看到的都是一些无意义的......
  • 聊一聊 .NET高级调试 中的一些内存术语
    一:背景1.讲故事在高级调试的旅程中,经常会有一些朋友问我什么是工作集(内存),什么是提交大小,什么是VirtualSize,什么是WorkingSet。。。截图如下:既然有很多朋友问,这些用口头也不怎么好描述,刚好上午有时间就系统的聊一下吧。二:内存术语解读1.VirtualSize是什么可能有些朋......
  • 聊一聊如何整合Microsoft.Extensions.DependencyInjection和Castle.Core(完结篇)
    前言书接上回,上回我们了解了castle代理的一些缺点,本文将开始操作整合Microsoft.Extension.Dependency和Castle,以让默认的容器可以支持拦截器我们将以进阶的形式逐步完善我们的封装,以实现一个更方便易用、普适、高性能的基础设施库。基础版还是先上代码,这是基础版本我们......
  • [转][C#][.net Core]
    中文提示:连接数据库过程中发生错误,检查服务器是否正常连接字符串是否正确,错误信息:Onlytheinvariantcultureissupportedinglobalization-invariantmode.Seehttps://aka.ms/GlobalizationInvariantModeformoreinformation.(Parameter'name')en-usisaninvalid......
  • Asp .Net Core 系列: 集成 Consul 实现 服务注册与健康检查
    目录什么是Consul?安装和运行ConsulAsp.NetCore如何集成Consul实现服务注册和健康检查Consul.AspNetCore中的AddConsul和AddConsulServiceRegistration方法究竟做了什么?AddConsul方法AddConsulServiceRegistration方法配置Consul检查服务封装成扩展效果什么是C......
  • 聊一聊如何整合Microsoft.Extensions.DependencyInjection和Castle.Core(三)
    前言今天的第三篇,感觉没啥人看呀,难道没有兄弟跟我有同样的整合需求吗???手动,本文会简短一些,介绍下CastleCore作为代理库的一些缺点甚至是硬伤异步支持先上代码///<summary>///异常捕获、日志记录和耗时监控拦截器2024-1-1221:28:22///</summary>publicclassCatch......
  • Microsoft 365 新功能速递:Microsoft 365 Apps中在Share Control选择要邀请的人
    51CTOBlog地址:https://blog.51cto.com/u_13969817Microsoft将在2024年2月初发布新的Inviteflow更新发送电子邮件体验,而不是发送共享链接。以往,使用“发送电子邮件”的客户在点击“发送”按钮后会认为他们可能过度共享了。这一变化有助于在与他人共享文件时更好地符合客户的期望,帮......
  • Microsoft 365 新功能速递:Microsoft 365 Data loss prevention simulation mode
    51CTOBlog地址:https://blog.51cto.com/u_13969817预计2024年2月底,Microsoft365将推出DLP的新功能:Simulationmode ,可以为DLP管理员提供了一种独立的体验,可以尝试DLP策略,评估其影响,并建立对策略有效性的信心,从而最终减少策略执行的时间。Simulationmode 是对现有测试模式行为......
  • Microsoft 365 新功能速递:Teams即将发布一线运营层次结构功能
    51CTOBlog地址:https://blog.51cto.com/u_13969817微软将在2024年1月份发布FrontlineOperationalHierarchy新功能,将使管理员能够将其组织的一线团队/地点结构映射到团队管理中心的层次结构。管理员可以为每个团队/地点定义从部门信息到品牌信息元数据的元数据。操作层次结构与此......
  • Microsoft 365 新功能速递:数据丢失预防和信息保护策略和标签的仅查看模式
    51CTO博客链接:https://blog.51cto.com/u_13637423微软将于2024年2月推出新功能数据丢失预防和信息保护策略和标签的仅查看模式,此功能允许具有仅查看受限权限的管理员查看数据丢失预防和信息保护策略配置的详细信息,而无需编辑策略或标签配置。这将如何影响您的组织:1.     为管......