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

东莞建站公司运转全网天下有 名新品牌推广方案

东莞建站公司运转全网天下有 名,新品牌推广方案,澎湃新闻,做网站平台多少钱文章目录 1.什么情况下需要引入第三方容器组件2.如何集成Autoface 1.什么情况下需要引入第三方容器组件 基于名称的注入属性注入子容器基于动态代理的AOP 核心扩展点:IServiceProviderFactory 第三方注入容器均使用这个类作为扩展点,将其注入到框架中…

文章目录

    • 1.什么情况下需要引入第三方容器组件
    • 2.如何集成Autoface

1.什么情况下需要引入第三方容器组件

  • 基于名称的注入
  • 属性注入
  • 子容器
  • 基于动态代理的AOP

核心扩展点:IServiceProviderFactory

第三方注入容器均使用这个类作为扩展点,将其注入到框架中,所以使用者只需关注官方定义的接口,而不用过多关注第三方容器

// 定义接口及实现
public interface IMyService
{void ShowCode();
}public class MyService : IMyservice
{public void ShowCode(){Console.WriteLine($"MyService.ShowCode:{GetHashCode()}");}
}public class MyServiceV2 : IMyservice
{public MyNameService NameService {get;set;}//用于演示属性注入方式public void ShowCode(){Console.WriteLine($"MyServiceV2.ShowCode:{GetHashCode()},NameService是否为空:{NameService==null}");}
}public class NameService
{}

2.如何集成Autoface

step 1 安装依赖包
1.Autofac.Extensions.DependencyInjection ⇒ 依赖注入包
2.Autofac.Extras.DynamicProxy ⇒ 动态代理包

step 2 Program添加代码

public static IHostBuilder CreateHostBuilder(string[] args) => Host.CreateDefaultBuilder(args).UseServiceProviderFactory(new AutofacServiceProviderFactory())// 添加这一行代码,这是用来注册第三方容器的入口.ConfigureWebHostDefaults(webBuilder => {webBuilder.UserStartup<Startip>();});

step 3 Startup添加方法ConfigureContainer

// 默认的注册方法
public void ConfigureServices(IServiceCollection services)
{services.AddControllers().AddControllerAsServices();
}// Autofac注册方法
public void ConfigureContainer(ContainerBuilder builder)
{builder.RegisterType<MyService>().As<IMyService>();// 命名注册,用于一个服务注册多次,并用命名来进行区分builder.RegisterType<MyServiceV2>().Named<IMyservice>("service2");// 属性注册builder.RegisterType<MyServiceV2>().As<IMyService>().PropertiesAutowired();// AOPbuilder.RegisterType<MyInterceptor>();// 拦截器//builder.RegisterType<MyNameService>();builder.RegisterType<MyServiceV2>().As<IMyService>().PropertiesAutowired().InterceptedBy(typeof(MyInterceptor)).EnableInterfaceInterceptors();// 子容器builder.RegisterType<MyNameService>().InstancePerMatchingLifetimeScope("myscope");
}public class MyInterceptor : IInterceptor
{public void Intercept(IInvocation invocation){Console.WriteLine($"拦截器前{invocation.Method.Name}");invocation.Processed();// 执行具体方法Console.WriteLine($"拦截器后{invocation.Method.Name}");}
}
http://www.15wanjia.com/news/33713.html

相关文章:

  • 做集团网站一年多少钱外贸独立站怎么做
  • 哪个浏览器不限制访问任何网站的销售新手怎么找客源
  • 网站改标题百度关键词挖掘工具爱站网
  • 网站建设软文模板域名ip地址在线查询
  • 查询建设银行卡卡号网站2023年8月新冠
  • 微信小程序网站建设哪家好宁波seo哪家好
  • wordpress 产品分类学seo建网站
  • 公益事业单位网站建设方案5月疫情最新消息
  • 网站建设 2018营销型网站开发公司
  • 侵权网站怎么做全网整合营销
  • 东莞网站建设排名 南城网络营销师资格证
  • evus在哪个网站做登记百度关键词优化推广
  • 招商加盟网站建设目的谷歌搜索引擎镜像入口
  • 做免费外贸网站华为手机业务最新消息
  • 郑州网站建设开发公司广告引流推广平台
  • 政府网站开发计入什么科目百度营销平台
  • 佛山从事网站建设长沙营销网站建设
  • 怎样做旅游摄影网站网络服务商在哪咨询
  • 晋江+网站建设+推广长沙seo优化公司
  • 空白网站怎么做企业如何网络推广
  • 网站备案容易吗网站建设平台哪家好
  • wordpress 萝莉吴中seo页面优化推广
  • 网站推广的全套方式朋友圈广告推广
  • 做影视网站违法广州百度网站快速排名
  • 电子商务网站开发平台的网络操作系统电商网站公司
  • 咸阳学校网站建设哪家好360指数在线查询
  • 地方网站源码百度一下官网
  • 党刊网站怎么做网站收录批量查询
  • 普陀手机网站建设百度一下1688
  • 网站手机优化显示微信小程序开发费用