更新说明文件。

This commit is contained in:
吴长征 2019-12-27 13:59:37 +08:00
parent b624a8920a
commit 5edfe6f41d

View File

@ -1,31 +1,34 @@
**使用说明** **使用说明**
1. 安装可以通过下载源码安装也可以通过nuget包安装。 1. 安装通过nuget包安装。
`https://www.nuget.org/packages/Falcon.DI/`
1. 引入名字空间 1. 引入名字空间
~~~ `using Falcon.DI`
using Microsoft.Extensions.DependencyInjection;
using Falcon.DI
~~~
1. 初始化容器使用UseFalconDI方法注册所有服务。 1. 初始化容器使用UseFalconDI方法注册所有服务。
~~~ ```
IServiceCollection ser = new ServiceCollection(); IServiceCollection ser = new ServiceCollection();
ser.UseFalconDI(); ser.UseFalconDI();
~~~ ```
1. 添加注册特性,服务可以注册到基础接口或自身。 1. 添加注册特性,服务可以通过`FalconDIRegisterAttribute`特性进行注册。
~~~ 注册规则如下:
public interface IMyInterface > 1. 如果提供了服务,例如`FalconDIRegister(Typeof(IMyInterface))`则注册到提供的服务。
{ > 2. 如果未提供任何服务类则注册到类型实现的所有接口、非object的基类和类型本身。
string Getname(); > 3. 如果类型本身不可以通过反射创建,则不会注册。
}
[FalconDIRegister] ```
public class MyClassInterfaces:IMyInterface public interface IMyInterface
{ {
public string Getname() { string Getname();
return this.GetType().Name; }
}
} [FalconDIRegister]
~~~ public class MyClassInterfaces:IMyInterface
{
public string Getname() {
return this.GetType().Name;
}
}
```
1. 注入可以使用ServiceCollection获取注册的服务。 1. 注入可以使用ServiceCollection获取注册的服务。
~~~ ~~~
using(var pd = ser.BuildServiceProvider()) { using(var pd = ser.BuildServiceProvider()) {
@ -36,7 +39,7 @@ public class MyClassInterfaces:IMyInterface
~~~ ~~~
或者使用构造注入 或者使用构造注入
~~~ ~~~
public interface INfi1 { } public interface INfi1 { }
public interface INfi2 { } public interface INfi2 { }
[FalconDIRegister] [FalconDIRegister]
@ -56,5 +59,7 @@ public class MyClassInterfaces:IMyInterface
} }
} }
~~~ ~~~
以上例子中首先注入了NotFull类型实现INfi1服务然后又注册了NotFullObj类型并通过构造注入方式消费了INfi1服务。INfi2因为没有注册所以使用默认值跳过注入 以上例子中首先注入了NotFull类型该类型提供INfi1服务然后又注册了NotFullObj类型并通过构造注入方式注入INfi1服务。INfi2因为没有注册所以使用默认值。
1. 关于生命周期。
提供了三种[实例生命周期](http://39.105.71.191/Falcon/Falcon.Di/src/branch/master/Falcon.DI/ServiceLifetime.cs),默认为`Scoped`。