服务端的TigerApi 框架,基于.NET6 2024 版本
Ben Lin
19 小时以前 a960900364d19bbf0ad7923a57989609e7fce798
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
/*生命周期枚举
 InstanceScope:
    InstancePerDependency:When you resolve a component that is instance per dependency, you get a new one each time.
    SingleInstance:When you resolve a single instance component, you always get the same instance no matter where you request it.
    InstancePerLifetimeScope:When you resolve the instance per lifetime scope component, you get a single instance per nested scope (e.g., per unit of work).
    InstancePerMatchingLifetimeScope:When you create a nested lifetime scope, you have the ability to “tag” or “name” the scope. A component with per-matching-lifetime scope will have at most a single instance per nested lifetime scope that matches a given name. This allows you to create a sort of “scoped singleton” where other nested lifetime scopes can share an instance of a component without declaring a global shared instance.
    InstancePerRequest:Instance per request builds on top of instance per matching lifetime scope by providing a well-known lifetime scope tag, a registration convenience method, and integration for common application types. Behind the scenes, though, it’s still just instance per matching lifetime scope.
    InstancePerOwned:The Owned<T> implicit relationship type creates new nested lifetime scopes. It is possible to scope dependencies to the owned instance using the instance-per-owned registrations.
    ThreadScope:Each thread executing through ThreadStart() will then get its own instance of MyThreadScopedComponent - which is essentially a “singleton” in the lifetime scope. Because scoped instances are never provided to outer scopes, it is easier to keep thread components separated.
*/
{
  "components": [
    {
      "type": "Tiger.Business.InterfaceServiceNew,Tiger.Business", //旧系统用InterfaceService,新系统用InterfaceServiceNew
      "services": [
        {
          "type": "Tiger.IBusiness.IInterfaceService,Tiger.IBusiness"
        }
      ],
      "autoActivate": true,
      "instanceScope": "single-instance", //生命周期
      "injectProperties": true
    }
  ]
}
/*生命周期枚举
 InstanceScope:
    InstancePerDependency:When you resolve a component that is instance per dependency, you get a new one each time.
    SingleInstance:When you resolve a single instance component, you always get the same instance no matter where you request it.
    InstancePerLifetimeScope:When you resolve the instance per lifetime scope component, you get a single instance per nested scope (e.g., per unit of work).
    InstancePerMatchingLifetimeScope:When you create a nested lifetime scope, you have the ability to “tag” or “name” the scope. A component with per-matching-lifetime scope will have at most a single instance per nested lifetime scope that matches a given name. This allows you to create a sort of “scoped singleton” where other nested lifetime scopes can share an instance of a component without declaring a global shared instance.
    InstancePerRequest:Instance per request builds on top of instance per matching lifetime scope by providing a well-known lifetime scope tag, a registration convenience method, and integration for common application types. Behind the scenes, though, it’s still just instance per matching lifetime scope.
    InstancePerOwned:The Owned<T> implicit relationship type creates new nested lifetime scopes. It is possible to scope dependencies to the owned instance using the instance-per-owned registrations.
    ThreadScope:Each thread executing through ThreadStart() will then get its own instance of MyThreadScopedComponent - which is essentially a “singleton” in the lifetime scope. Because scoped instances are never provided to outer scopes, it is easier to keep thread components separated.
*/