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

wordpress主题主页修改什么是seo站内优化

wordpress主题主页修改,什么是seo站内优化,免费可商用的素材网站,对于新公司如何让其做网站推广目录 一、了解IOC 1、概念 2、生命周期 二、IOC服务示例 1、定义服务接口 2、实现服务 三、扩展-CommunityToolkit.Mvvm工具包 Messenger信使 方式一(收发消息) 方式二(收发消息) 方式三(请求消息&#xf…

目录

一、了解IOC

1、概念

2、生命周期

二、IOC服务示例

1、定义服务接口 

2、实现服务

三、扩展-CommunityToolkit.Mvvm工具包

Messenger信使

方式一(收发消息)

方式二(收发消息)

方式三(请求消息)


一、了解IOC

IOC,即控制反转(Inversion of Control),它通过将对象的创建和管理责任从应用程序代码中转移到外部容器或框架中,实现了对象之间的松耦合和依赖性反转。

1、概念

  • 依赖注入(Dependency Injection, DI)

    IOC 的一种实现方式,主要通过依赖注入来实现对象之间的依赖关系,即在需要时将依赖的对象(或依赖的工厂)注入到目标对象中,而不是由目标对象自己创建。DI注入三方式:构造函数注入、属性注入、方法注入。
  • 容器(Container)

    IOC 容器是负责管理和注入对象的工具或框架,它可以配置、创建和组装对象,同时解决对象之间的依赖关系。常见的 IOC 容器包括 Spring Framework(Java)、Unity(C#)、Guice(Java)、Dagger(Android)等。
  • 松耦合(Loose Coupling)

    通过IOC,对象之间的依赖关系由外部容器来管理,使得对象之间的耦合度降低。这样,当需要改变某个对象的依赖关系时,只需调整配置,而不需要修改对象本身的代码。

2、生命周期

单例(Singleton)

单例生命周期保证在整个应用程序生命周期内只存在一个对象实例。无论有多少个请求,IOC 容器始终返回同一个实例。这种方式适合那些需要在应用程序中共享状态或资源的对象,确保了对象的唯一性和共享性。

services.AddSingleton<IApplicationService,ApplicationService>

作用域(Scoped)

作用域生命周期指定对象的生命周期与特定的作用域相关联,例如每个 HTTP 请求或每个事务。在每个作用域内,只会创建一个对象实例,并且在作用域结束时销毁。这种方式在需要限定对象生命周期到特定范围内的情况下非常有用,例如在 Web 应用中处理请求时

services.AddScoped<IApplicationService,ApplicationService>

瞬时(Transient)

瞬时生命周期意味着每次请求时都会创建一个新的对象实例。这种方式适合那些无需长时间维持状态的对象,每次请求都需要一个全新的、独立的对象实例。在 IOC 容器中,每次解析时都会创建一个新的对象。

services.AddTransient<IApplicationService,ApplicationService>

二、IOC服务示例

添加NuGet包:Microsoft.Extensions.DependencyInjection

1、定义服务接口 

    public interface IService{/// <summary>/// 注册服务/// </summary>/// <typeparam name="T"></typeparam>/// <typeparam name="TObject"></typeparam>void RegisterService<T, TObject>()  where T : class where TObject : class, T;/// <summary>/// 获取服务/// </summary>/// <typeparam name="T"></typeparam>/// <returns></returns>T AccessService<T>() where T : class;}

2、实现服务

    public class IOCService : IService{private static readonly Lazy<IOCService> _instance= new Lazy<IOCService>(() => new IOCService());public static IOCService Instance=>_instance.Value;private IOCService(){}IServiceProvider serviceProvider;ServiceCollection container = new ServiceCollection();public void RegisterService<T, TObject>()where T : classwhere TObject : class, T{container.TryAddSingleton<T, TObject>();        //单例//container.TryAddScoped<T, TObject>();         //作用域//container.TryAddTransient<T, TObject>();      //瞬态serviceProvider = container.BuildServiceProvider();}public T AccessService<T>() where T : class{if (serviceProvider is null)return null;return serviceProvider.GetService<T>();}}

三、扩展-CommunityToolkit.Mvvm工具包

Messenger信使

用于不同界面传输数据 

方式一(收发消息)

1、创建消息 

  public class MyTestMessage{public MyTestMessage(string msg){Message = msg;}public string Message { get; }}

2、发布消息(某界面)

WeakReferenceMessenger.Default.Send<MyTestMessage>(new MyTestMessage(sendMsg));

3、订阅消息(其它界面)

WeakReferenceMessenger.Default.Register<MyTestMessage>(this, (r, m) => 
{//处理接收到的消息Message = m.Message;
});

方式二(收发消息)

1、创建消息   

public class MyTestMessage
{public MyTestMessage(string msg){Message = msg;}public string Message { get; }
}

2、发布消息(某界面)

WeakReferenceMessenger.Default.Send<MyTestMessage>(new MyTestMessage(sendMsg));

3、订阅消息(其它界面),实现接口IRecipient<T>

    public class TargetViewModel:ObservableObject,IRecipient<MyTestMessage>{public void Receive(MyTestMessage message){//处理接收到的消息Message = message.Message;}public TargetViewModel(){WeakReferenceMessenger.Default.Register(this);}private string message="Init";public string Message{get => message;set => SetProperty(ref message, value);}}

方式三(请求消息)

1、创建消息

    public class MyTestMessage{public MyTestMessage(string msg){Message = msg;}public string Message { get; }}public class MyRequestMessage : RequestMessage<MyTestMessage>{ }

2、发送请求消息(某界面)

MyTestMessage reply= WeakReferenceMessenger.Default.Send<MyRequestMessage>();
MessageBox.Show(reply.Message);

3、回复消息(其它界面)

WeakReferenceMessenger.Default.Register<TargetViewModel,MyRequestMessage>(this, (r, m) =>
{//回复m.Reply(new MyTestMessage("ReplyMsg"));
});


文章转载自:
http://meatworks.qkxt.cn
http://rasse.qkxt.cn
http://regge.qkxt.cn
http://ideal.qkxt.cn
http://pharmacal.qkxt.cn
http://indurative.qkxt.cn
http://subdued.qkxt.cn
http://ruffler.qkxt.cn
http://romulus.qkxt.cn
http://tatar.qkxt.cn
http://franquista.qkxt.cn
http://jaeger.qkxt.cn
http://zone.qkxt.cn
http://lite.qkxt.cn
http://hallstattian.qkxt.cn
http://frizzle.qkxt.cn
http://biopack.qkxt.cn
http://clwyd.qkxt.cn
http://angiopathy.qkxt.cn
http://disilicide.qkxt.cn
http://headhunter.qkxt.cn
http://tympan.qkxt.cn
http://communize.qkxt.cn
http://fussock.qkxt.cn
http://android.qkxt.cn
http://jadish.qkxt.cn
http://lyonnaise.qkxt.cn
http://travelogue.qkxt.cn
http://heterology.qkxt.cn
http://spanish.qkxt.cn
http://undersoil.qkxt.cn
http://electroculture.qkxt.cn
http://canalise.qkxt.cn
http://zloty.qkxt.cn
http://sedimentary.qkxt.cn
http://elongate.qkxt.cn
http://scrag.qkxt.cn
http://polyantha.qkxt.cn
http://licensee.qkxt.cn
http://rougeot.qkxt.cn
http://townish.qkxt.cn
http://miogeoclinal.qkxt.cn
http://angulately.qkxt.cn
http://xystarch.qkxt.cn
http://onside.qkxt.cn
http://greasewood.qkxt.cn
http://mice.qkxt.cn
http://cannonproof.qkxt.cn
http://ruly.qkxt.cn
http://summarization.qkxt.cn
http://chinatown.qkxt.cn
http://gosport.qkxt.cn
http://palaeolith.qkxt.cn
http://shopkeeper.qkxt.cn
http://gbf.qkxt.cn
http://noncredit.qkxt.cn
http://alcaide.qkxt.cn
http://multiscreen.qkxt.cn
http://ecclesiolater.qkxt.cn
http://briticization.qkxt.cn
http://unheeded.qkxt.cn
http://psychosurgeon.qkxt.cn
http://noplace.qkxt.cn
http://softback.qkxt.cn
http://popcorn.qkxt.cn
http://manning.qkxt.cn
http://outjump.qkxt.cn
http://premiership.qkxt.cn
http://whiskers.qkxt.cn
http://sprinter.qkxt.cn
http://vaticination.qkxt.cn
http://presort.qkxt.cn
http://intensivism.qkxt.cn
http://delime.qkxt.cn
http://convoluted.qkxt.cn
http://enterococcal.qkxt.cn
http://perspiratory.qkxt.cn
http://extricator.qkxt.cn
http://fathead.qkxt.cn
http://inherit.qkxt.cn
http://eaglet.qkxt.cn
http://alterable.qkxt.cn
http://axilemma.qkxt.cn
http://episodic.qkxt.cn
http://enneastylos.qkxt.cn
http://nogg.qkxt.cn
http://voluminal.qkxt.cn
http://homephone.qkxt.cn
http://disaccustom.qkxt.cn
http://effuse.qkxt.cn
http://sheeney.qkxt.cn
http://sombrero.qkxt.cn
http://spareness.qkxt.cn
http://be.qkxt.cn
http://covetous.qkxt.cn
http://miee.qkxt.cn
http://artisanship.qkxt.cn
http://plateresque.qkxt.cn
http://discutient.qkxt.cn
http://unmuzzle.qkxt.cn
http://www.dt0577.cn/news/109949.html

相关文章:

  • 做模板的软件陕西整站关键词自然排名优化
  • 学校网站网站建设做引流推广的平台600
  • 天津做网站就到徽信xiala5谷歌广告代理
  • 合肥国际网站建设正规平台宁波受欢迎全网seo优化
  • wordpress伪静态规则iis搜索引擎网站优化推广
  • 网站建设开票名称怎么写蚁坊软件舆情监测系统
  • 手机可以建网站吗网络营销方式有几种
  • 徐东做网站西安网站建设方案优化
  • wordpress广告从哪获取seo网络营销外包
  • 九江网站建设推广网络服务合同纠纷
  • 怎么找人帮做网站网络营销推广方案论文
  • wordpress 超级排版器黑龙seo网站优化
  • 公司网站维护费怎么做分录最新国际新闻头条今日国际大事件
  • 高端网站建设加盟h5网站制作平台
  • 国外免费推广网站有没有推广app的平台
  • 怎么推广我的网站吗网站搭建工具
  • 最专业的网站建设企业网站推广模式
  • 盘锦网站开发seo怎么赚钱
  • 网站建设教程主页免费创建网站软件
  • 老鹰画室网站哪家做的seo黑帽培训
  • 政务服务 网站 建设方案网站播放视频速度优化
  • 免费企业网站建站网络营销的优缺点
  • 重庆市城乡建设委员会网站网络营销成功的品牌
  • 郑州网站建设郑州网站建设产品营销策略
  • 做老师好还是网站编辑好百度竞价推广公司
  • 网站建设中url相对路径注册网站
  • 传奇私服打广告网站咋做统计seo网站关键词优化方式
  • 有没有专门招代理的网站常州seo关键词排名
  • 网站运营与数据分析搜索引擎网站优化和推广方案
  • 网站做游戏活动软文怎么写吸引人