net 6 手动注入

Program.cs

 EnginContex为静态类

//注册服务
EnginContext.SetServiceProvider(app.Services);

EnginContex.cs

    public sealed class EnginContext
    {
        private static IServiceProvider _serviceProvider;

        [MethodImpl(MethodImplOptions.Synchronized)]
        public static void SetServiceProvider(IServiceProvider serviceProvider)
        {
            _serviceProvider = serviceProvider;
        }

        public static T Resolve<T>()
        {
            return _serviceProvider.GetService<T>();
        }
    }

使用方法:

public sealed class T
{
public static T Instance => EnginContext.Resolve<T>();
}


----------------
 T.Instance.方法()

  

posted @ 2024-03-28 10:29  南風未起  阅读(34)  评论(0)    收藏  举报