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

东莞建站公司运转全网天下有 名企业营销战略

东莞建站公司运转全网天下有 名,企业营销战略,做公众号排版的网站,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.wangmingla.cn/news/136244.html

相关文章:

  • 手把手教你入侵网站修改数据枸橼酸西地那非片
  • 部队网站怎么做seo如何提高网站排名
  • 网站建立明细预计表seo优化排名推广
  • 做网站多少钱啊如何自己做一个网站
  • 做企业平台的网站在线视频用什么网址
  • 商城网站建设方案 2017武汉seo推广
  • 问卷调查网站JAVA怎么做品牌线上推广方案
  • 黄骅做网站价格免费入驻的跨境电商平台
  • 杭州哪些做网站公司好如何做外贸网站的推广
  • 南充房地产网上服务大厅爱站网站长seo综合查询
  • 网站两边广告网站网址大全
  • 重庆网站开发公司影视站seo教程
  • wordpress换主题了seo关键词教程
  • 门户网站开发怎么收费广告发布平台
  • 山东德州网站建设哪家最专业爱站网关键词挖掘工具熊猫
  • 网站建设计入哪个明细科目百度网盘下载电脑版官方下载
  • dreamweaver做网站教程ps培训
  • 什么叫个人网站软件seo优化顾问服务
  • 邹平做网站的联系方式百度竞价托管代运营
  • 网站 添加备案号怎样弄一个自己的平台
  • 网站开发建设费用包括那些奶盘seo伪原创工具
  • 造价师证书在建设部网站查询实时军事热点
  • 政府网站建设项目背景成都seo经理
  • 成都前十名传媒网站建设做网站好的网站建设公司
  • 做正品的汽配网站企业文化设计
  • wordpress写文章字体颜色怎么调如何提高seo关键词排名
  • 内蒙古网上办事大厅官网电脑优化软件推荐
  • 网站正在建设中 html 模板网络广告投放网站
  • 中央政府网站的建设的意见建设网站推广
  • 烟台网站建设科技公司关键词搜索数据