Skip to content

RsCode 提供了应用程序接口自动注册,构造和属性注入的方法。

应用程序集接口自动注入步骤:

1.自动注入应用程序集接口

csharp
//自动注入某个应用程序集接口
services.AutoInject("XX.XX.XX");

//或自动注册指定程序集,例
string[] assemblieName = new string[] { "RsCode.Web", "RsCode.Application" };
services.AutoInject(assemblieName);

//asp.net core应用
services.AddControllersWithViews()
    .AddControllersAsServices(); //必要

如果要使用属性注入,需要添加

csharp
builder.Host.UseServiceProviderFactory(new DynamicProxyServiceProviderFactory());

没有标记生命周期的接口,需要自写代码完成注入

2.定义接口生命周期 在需要自动注入的接口添加标记,示例:

csharp
//指定实例生命周期 需要自动完成注册的接口添加标记
[ScopedService] //作用域(Scoped)生命周期服务在每个作用域内被创建一次
//[SingletonService] //单例(Singleton)生命周期服务在它们第一次被解析时创建,并且每个后续解析将使用相同的实例
//[TransientService] //瞬时(Transient)生命周期服务在它们每次请求时被创建
public interface IDemo{}

3.注入接口实例

csharp
public class DemoController:Controller
{
	IUserRepository repository;
	public DemoController(IUserRepository rep)
	{
		repository=rep;
	}
	 [FromServiceContext]
	 public IUserService userService  { get; set; }
}