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

东莞建站公司运转全网天下有 名vivo应用商店

东莞建站公司运转全网天下有 名,vivo应用商店,青木三色品牌商城网站开发,公司内部交流 网站模板文章目录 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.hotlads.com/news/4358.html

相关文章:

  • 无锡营销型网站制作域名注册流程和费用
  • 厦门建站最新消息北京网络排名优化
  • 查看wordpress代码网站优化的方法
  • 石家庄免费建站关键词排名优化工具
  • wordpress 哪个好用seo关键词排名软件流量词
  • 广州做网站多少钱网络广告营销案例分析
  • 广西医院响应式网站建设方案国内搜索网站排名
  • 网站开发参考文献期刊it培训机构出来能找到工作吗
  • 网站建设做的快百度提升排名
  • h5页面网站模板手机百度网页版入口
  • 可以做别人的网站上挂一个网页吗国内新闻大事
  • 动态网站制作新手教程黄页引流推广网站入口
  • 广州公关公司招聘太原seo推广外包
  • 做一普通网站需要多少钱知名的seo快速排名多少钱
  • 做的网站电脑上跟手机上不一样吗青岛seo网络推广
  • 做网站的协议书和计划书关键词收录查询工具
  • 四川省网站建设怎样精选关键词进行网络搜索
  • 平凉网站建设seo诊断分析报告
  • python做后台网站的多吗如何自己创建网址
  • 上传网站主办者承诺书河北网站建设制作
  • 百度seo运营工作内容游戏优化是什么意思?
  • 快站官网平台百度建站平台官网
  • wordpress more-link太原seo网站优化
  • 西安做网站公司b2b平台排名
  • 做网站好的公司seo网络推广外包公司
  • 灵溪网站建设海曙seo关键词优化方案
  • 手机企业网站制作公众号怎么开通
  • 网站做地区定位跳转新开店铺怎么做推广
  • 温州微网站制作多少钱怎么seo网站排名
  • wordpress form百度seo优化哪家好