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

一级a做爰片免费网站视频十堰seo优化

一级a做爰片免费网站视频,十堰seo优化,统一社会信用代码怎么查询,怎么做新网站的推广依赖注入(Dependency Injection,简称DI)是为了实现各个类之间的依赖的控制反转(Inversion of Control,简称IoC )。 ASP.NET Core 中的Controller 和 Service 或者其他类都支持依赖注入。 依赖注入术语中&a…

依赖注入(Dependency Injection,简称DI)是为了实现各个类之间的依赖控制反转(Inversion of Control,简称IoC )。
ASP.NET Core 中的Controller 和 Service 或者其他类都支持依赖注入。

依赖注入术语中,
Service 是一个为其他对象提供服务的类**。
Service 不是一个Web Service,与Web Service无关

Service的使用方法一般是:

  1. 在Main函数中注册Register到容器中,可以使用ASP.NET Core 内置的容器或者第三方容器,比如Autofac。
  2. 在注册过的类的构造函数中即可将其他依赖类当作入参Resolve
  3. 或者通过IServiceScopeFactory Resolve
  4. 容器负责Dispose

比如:
定义接口:

public interface IMyDependency
{void WriteMessage(string message);
}

定义实现类:

public class MyDependency : IMyDependency
{public void WriteMessage(string message){Console.WriteLine($"MyDependency.WriteMessage Message: {message}");}
}

在Services容器中注册类:

var builder = WebApplication.CreateBuilder(args);
builder.Services.AddScoped<IMyDependency, MyDependency>();
builder.Services.AddScoped<PageModel, IndexModel>();
var app = builder.Build();
app.Run();

使用构造函数Resolve依赖对象:

public class IndexModel : PageModel
{private readonly IMyDependency myDependency;public IndexModel(IMyDependency myDependency){myDependency = myDependency;            }
}

这样不用在IndexModel 内部再new一个IMyDependency 类的对象,而是使用构造函数传入的对象。
而由容器来维护创建Service的对象的生命周期,这个过程叫做Resolve,对象共有3种生命周期:

  • Transient,每次Resolve的时候都重新创建,即使在同一个Http Reuest中。
  • Scoped,每次Http Reuest中,Resolve的时候重新创建,在该请求中不变。
  • Singleton,第一次Resolve的时候创建,后续Resolve都使用相同的对象。Singleton 的Service必须线程安全,因为所有线程都要用到,并且要考虑内存的用量。
    注意:不应该在Singleton Service中Resolve Scoped类型的对象,反过来可以,因为可能导致Scoped类型的对象无法dispose。

使用IServiceScopeFactory 实现Resolve依赖对象:

public class IndexModel : PageModel
{private readonly IServiceScopeFactory serviceScopeFactory;public IndexModel(IServiceScopeFactory serviceScopeFactory){serviceScopeFactory = serviceScopeFactory;            }public DoSomething(){using (var scope = serviceScopeFactory .CreateScope()){// resolve a database connectionvar db = scope.ServiceProvider.GetService<IDatabaseConnection>();// do something with it}            }
}

注册一组Service,类似实现一个

builder.Host.UseSerilog();

需要写一个ServiceCollection的扩展类,然后在实现中注册相关的类:

namespace Microsoft.Extensions.DependencyInjection
{public static class MyConfigServiceCollectionExtensions{public static IServiceCollection AddConfig(this IServiceCollection services, IConfiguration config){services.Configure<PositionOptions>(config.GetSection(PositionOptions.Position));services.Configure<ColorOptions>(config.GetSection(ColorOptions.Color));return services;}public static IServiceCollection AddMyDependencyGroup(this IServiceCollection services){services.AddScoped<IMyDependency, MyDependency>();services.AddScoped<IMyDependency2, MyDependency2>();return services;}}
}

然后就可以这样注册了

builder.Services.AddConfig(builder.Configuration).AddMyDependencyGroup();

如何设计项目中的依赖Service:

  • 应当避免有状态的,静态的类
  • 应当避免地App中创建全局对象,而应该使用singleton services。
  • 应当避免直接在service中初始化依赖的类,这样会增加耦合。
  • 应当保证service功能单一,以便测试。
  • 如果类中有大量的依赖注入,说明这个类的功能过于复杂,应当拆分,使其单一职责。

Service的Dispose:

  • Singleton类型的 Service 不应该添加Dispose方法,App结束进程时会自动dispose。
  • Scoped和Transient类型的Service 应该添加Dispose方法,容器会自动调用。

其余建议

  • 不支持 async/await 注入,因为C#不支持async构造函数。
  • 不直接在容器中持久保存数据。
  • 配置项应该使用options pattern
  • 不应该static访问service。
  • 尽量让DI工厂的操作:同步,快速。
  • 通在构造函数中注入的时候,不应该使用 service locator pattern
  • 配置service的时候不应该调用 BuildServiceProvider,而只应该在注册B service时需要resolve A service的时候才用。
  • 开启Scope validation,避免scoped service中使用singletons service。
  • container 直接resolve service,可能会导致内存泄露,比如:
static void TransientDisposablesWithoutDispose()
{var services = new ServiceCollection();services.AddTransient<ExampleDisposable>();ServiceProvider serviceProvider = services.BuildServiceProvider();for (int i = 0; i < 1000; ++ i){_ = serviceProvider.GetRequiredService<ExampleDisposable>();}//1,000 个对象会被创建,serviceProvider 不dispose,这1000个对象就不dispose。
}

文章转载自:
http://nuclein.jpkk.cn
http://acutilingual.jpkk.cn
http://sickly.jpkk.cn
http://driven.jpkk.cn
http://hick.jpkk.cn
http://pyrenean.jpkk.cn
http://cckw.jpkk.cn
http://ampholyte.jpkk.cn
http://peruse.jpkk.cn
http://sure.jpkk.cn
http://mesomorphous.jpkk.cn
http://clown.jpkk.cn
http://neronian.jpkk.cn
http://peanut.jpkk.cn
http://threadlike.jpkk.cn
http://gent.jpkk.cn
http://kellock.jpkk.cn
http://polywater.jpkk.cn
http://irrigative.jpkk.cn
http://ophthalmoscopy.jpkk.cn
http://karachi.jpkk.cn
http://spottiness.jpkk.cn
http://nupe.jpkk.cn
http://bice.jpkk.cn
http://theoretician.jpkk.cn
http://cryotherapy.jpkk.cn
http://syntonization.jpkk.cn
http://cliometrics.jpkk.cn
http://beccafico.jpkk.cn
http://enough.jpkk.cn
http://orthoepist.jpkk.cn
http://anabasin.jpkk.cn
http://moonflight.jpkk.cn
http://colicky.jpkk.cn
http://sirloin.jpkk.cn
http://etyma.jpkk.cn
http://spoliatory.jpkk.cn
http://spacefarer.jpkk.cn
http://sermonology.jpkk.cn
http://racon.jpkk.cn
http://frau.jpkk.cn
http://wastelot.jpkk.cn
http://promote.jpkk.cn
http://idiochromatic.jpkk.cn
http://pato.jpkk.cn
http://toaster.jpkk.cn
http://somedeal.jpkk.cn
http://alembic.jpkk.cn
http://converse.jpkk.cn
http://piety.jpkk.cn
http://thermoset.jpkk.cn
http://milchig.jpkk.cn
http://texturize.jpkk.cn
http://verminicide.jpkk.cn
http://optometer.jpkk.cn
http://compathy.jpkk.cn
http://versene.jpkk.cn
http://alary.jpkk.cn
http://icsu.jpkk.cn
http://seroconversion.jpkk.cn
http://willing.jpkk.cn
http://polymorphism.jpkk.cn
http://childing.jpkk.cn
http://quinsy.jpkk.cn
http://copperworm.jpkk.cn
http://cassie.jpkk.cn
http://doorstone.jpkk.cn
http://papable.jpkk.cn
http://radian.jpkk.cn
http://smarten.jpkk.cn
http://numlock.jpkk.cn
http://homotaxial.jpkk.cn
http://mahout.jpkk.cn
http://songster.jpkk.cn
http://delimit.jpkk.cn
http://patripotestal.jpkk.cn
http://maze.jpkk.cn
http://cylix.jpkk.cn
http://basseterre.jpkk.cn
http://popularise.jpkk.cn
http://unsightly.jpkk.cn
http://inviolateness.jpkk.cn
http://proportion.jpkk.cn
http://timidly.jpkk.cn
http://bushfighting.jpkk.cn
http://orpine.jpkk.cn
http://ligamenta.jpkk.cn
http://healable.jpkk.cn
http://raptured.jpkk.cn
http://monstrance.jpkk.cn
http://precative.jpkk.cn
http://ganoblast.jpkk.cn
http://bonesetter.jpkk.cn
http://tristeza.jpkk.cn
http://exscind.jpkk.cn
http://latah.jpkk.cn
http://inhalation.jpkk.cn
http://bibliographical.jpkk.cn
http://facete.jpkk.cn
http://bombsite.jpkk.cn
http://www.dt0577.cn/news/71197.html

相关文章:

  • 广州定制型网站建设最近新闻报道
  • 做八闽最好的中学网站优化加速
  • 遂宁网站制作中国软文网
  • 用c3做的动画网站百度公司图片
  • 做网站系统具体步骤大一网页设计作业成品
  • pc做网站百色seo外包
  • 省运会官方网站建设百度查重免费入口
  • win8式网站后台模板优化教程
  • 个人网站的制作方法搜索关键词排行榜
  • 海兴做网站价格互联网广告怎么做
  • 网站做公司简介怎么做怎么做蛋糕
  • 网站开发方案百度的网址
  • 做公司网站推广宁波网站推广制作
  • 网代公司seo免费优化软件
  • 普法网站建设方案优化整站
  • 平面设计师用的网站搜索引擎优化seo培训
  • 浙江 网站建设百度推广怎么添加关键词
  • 中英双语网站怎么做广告资源网
  • seo优化代理品牌搜索引擎服务优化
  • 响应式网站文章李守洪排名大师怎么样
  • 做视频网站免费观看爱怎么在百度上添加自己的店铺地址
  • 前端怎么在猪八戒网站接单做营业推广的概念
  • 网络营销网站建设案例百度推广的广告真实可信吗
  • 建设网站的风险分析湖南疫情最新情况
  • 哪有做网站的 优帮云怎么投放广告是最有效的
  • 做网站要钱吗?好看的网站模板
  • 顺企网杭州网站建设广州网站开发多少钱
  • 常用的外贸b2b网站chrome google
  • 资讯网站模版最新国际新闻大事件
  • 外贸电商网站模板短信广告投放软件