AppServiceAttribute.cs 1.0 KB

1234567891011121314151617181920212223242526272829303132
  1. namespace Attribute
  2. {
  3. /// <summary>
  4. /// 参考地址:https://www.cnblogs.com/kelelipeng/p/10643556.html
  5. /// 标记服务
  6. /// 如何使用?
  7. /// 1、如果服务是本身 直接在类上使用[AppService]
  8. /// 2、如果服务是接口 在类上使用 [AppService(ServiceType = typeof(实现接口))]
  9. /// </summary>
  10. [AttributeUsage(AttributeTargets.Class, Inherited = false)]
  11. public class AppServiceAttribute : System.Attribute
  12. {
  13. /// <summary>
  14. /// 服务声明周期
  15. /// 不给默认值的话注册的是AddSingleton
  16. /// </summary>
  17. public LifeTime ServiceLifetime { get; set; } = LifeTime.Scoped;
  18. /// <summary>
  19. /// 指定服务类型
  20. /// </summary>
  21. public Type ServiceType { get; set; }
  22. /// <summary>
  23. /// 是否可以从第一个接口获取服务类型
  24. /// </summary>
  25. public bool InterfaceServiceType { get; set; }
  26. }
  27. public enum LifeTime
  28. {
  29. Transient, Scoped, Singleton
  30. }
  31. }