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

东莞建站公司运转全网天下有 名下载百度语音导航地图

东莞建站公司运转全网天下有 名,下载百度语音导航地图,用虚拟主机好还是阿里云wordpress,wordpress配置页面跳转文章目录 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.shuangfujiaoyu.com/news/22669.html

相关文章:

  • 凡科网站建站后 怎么编辑自己的代码源网站整合营销推广
  • 成立网站是不是需要先成立公司360优化关键词
  • 厦门市城市建设档案馆网站网站运营工作内容
  • 中企动力邮箱西安seo推广公司
  • 黑龙江网站设计网络推广外包业务销售
  • wordpress 上传任意附件黑帽seo优化推广
  • 自己怎么做企业网站建设站外推广
  • wordpress 主题导出河北seo公司
  • 长春网络公司宣传seo策划
  • jsp企业网站开发毕业论文深圳优化公司义高粱seo
  • 科技局是做什么的成都官网seo厂家
  • 李笑来做的一个网站搜狗搜索引擎网页
  • 泰州网站优化公司首页关键词排名优化
  • 网站建设任务南昌做seo的公司有哪些
  • 网站建设 方案书重庆网站seo服务
  • 博物馆门户网站建设方案wap网站html5
  • 无锡网站建设动态网盟推广
  • 湖南做网站 e磐石网络深圳谷歌网络推广公司
  • 合肥大型网站开发公司买卖平台
  • 网站建设公司中企动力推荐成都有实力的seo团队
  • 防伪网站模板百度关键词挖掘工具
  • 网站免费正能量直接进入appseo培训费用
  • 做周边的专业网站网站优化包括
  • 张店低价网站建设nba最新交易
  • 印度人做网站今日头条十大热点
  • 西安百姓网免费发布信息网沈阳seo推广
  • 新网站seo优化推广网站怎么制作
  • 华人代购网站开发网络推广员是什么工作
  • 谁能低价做网站支付接口电子商务网站建设方案
  • 百度怎样免费发布信息seo是什么学校