可以做两个网站指向同一个域名成功案例展示网站
news/
2025/9/22 16:57:21/
文章来源:
可以做两个网站指向同一个域名,成功案例展示网站,深圳分销网站设计哪家好,双桥网站建设在.NET8 中引入了KeyedService支持#xff0c;这使得可以支持一对多的依赖注入了。在官方#xff0c;这个功能叫键化DI服务。
什么是键化DI服务#xff1f;官方解释是这样的#xff0c;键化依赖项注入#xff08;DI#xff09;服务提供了一种适用键来注册和检索DI服务的…在.NET8 中引入了KeyedService支持这使得可以支持一对多的依赖注入了。在官方这个功能叫键化DI服务。
什么是键化DI服务官方解释是这样的键化依赖项注入DI服务提供了一种适用键来注册和检索DI服务的方法通过适用键可以限定注册和使用服务的方式。
看了还是比较懵的话我们用一个简单的示例来演示一下这个过程。
假设有以下接口和两个实现类
public interface IOTP
{string OTPType(string type);
}public class TOTP : IOTP
{public string OTPType(string type) TOTP;
}public class HOTP : IOTP
{public string OTPType(string type) HOTP;
}没有Keyed Service
在没有键控服务的时候可能要这样注册这两个服务。
builder.Services.AddSingletonIOTP, TOTP();
builder.Services.AddSingletonIOTP, HOTP();然后再使用的时候还是比较麻烦的要么依次取出服务再进行判断要么就更改注册的顺序。
使用Keyed Service
现在有了使用Keyed Service我们就可以键控服务进行服务的注册。注册服务时可以使用AddKeyedSingleton() 、 AddKeyedScoped() 或 AddKeyedTransient() 进行服务的注册。
builder.Services.AddKeyedSingletonIOTP, TOTP(totp);
builder.Services.AddKeyedSingletonIOTP, HOTP(hotp);使用的时候可以通过[FromKeyedServices(object key)]属性应用服务。例如这样
public class CreateOTP([FromKeyedServices(totp)] IOTP otp)
{public string OTPType(string message) otp.OTPType(message);
}也可以通过调用服务的方式例如
var app builder.Build();
var totpServie app.Services.GetRequiredKeyedServiceIOTP(totp);var hotpServie app.Services.GetRequiredKeyedServiceIOTP(hotp);这样就比较用了。
总结
暂无下次再会
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/909719.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!