首页 > 编程语言 >.net 8项目通过Autofac获取程序集服务并注册

.net 8项目通过Autofac获取程序集服务并注册

时间:2024-07-01 18:43:10浏览次数:12  
标签:Autofac builder dll 注册 var servicesDllFile net

首先新建一个AutofacModuleRegister类并继承Autofac.Module。

public class AutofacModuleRegister : Autofac.Module

 {

     protected override void Load(ContainerBuilder builder)

     {

         var basePath = AppContext.BaseDirectory;

         var servicesDllFile = Path.Combine(basePath, "Services.dll");

         var repositoryDllFile = Path.Combine(basePath, "Repository.dll");

         if (!(File.Exists(servicesDllFile) && File.Exists(repositoryDllFile)))

         {

             var msg = "Repository.dll和service.dll 丢失,因为项目解耦了,所以需要先F6编译,再F5运行,请检查 bin 文件夹,并拷贝。";

             Log.Error(msg);

             throw new Exception(msg);

         }

         // 获取 Service.dll 程序集服务,并注册

         var assemblysServices = Assembly.LoadFrom(servicesDllFile);

         builder.RegisterAssemblyTypes(assemblysServices).AsImplementedInterfaces().InstancePerDependency();

         // 获取 Repository.dll 程序集服务,并注册

         var assemblysRepository = Assembly.LoadFrom(repositoryDllFile);

         builder.RegisterAssemblyTypes(assemblysRepository).AsImplementedInterfaces().InstancePerDependency();

     }

 }

2.在program.cs中注册自定义的Autofac配置文件。

var builder = WebApplication.CreateBuilder(args);

// 1、配置host与容器

builder.Host.UseServiceProviderFactory(new AutofacServiceProviderFactory())

            .ConfigureContainer<ContainerBuilder>(builder =>

            {

              builder.RegisterModule(new AutofacModuleRegister());

            });

 源码地址:https://github.com/cplmlm/BasicFramework

标签:Autofac,builder,dll,注册,var,servicesDllFile,net
From: https://www.cnblogs.com/cplmlm/p/18278622

相关文章

  • ASP.NET Core MVC 从入门到精通之HttpContext
    原文链接:https://www.cnblogs.com/hsiang/p/17368101.html什么是HttpContext?在B/S模式开发的程序中,客户端是浏览器,服务器端Web服务程序,HttpContext是连接客户端和服务器端程序的桥梁,交代了当前请求的环境信息,它封装了请求[Request]和响应[Response]及其他所有信息,示意图如下所......
  • 【K8s】专题六(3):Kubernetes 稳定性之自动扩缩容
    以下内容均来自个人笔记并重新梳理,如有错误欢迎指正!如果对您有帮助,烦请点赞、关注、转发!欢迎扫码关注个人公众号!一、基本介绍在Kubernetes中,自动扩缩容是一种动态调整集群资源,以灵活应对应用程序资源需求变化的机制。自动扩缩容可以分为两个层面:Node层面:根据业务规模......
  • Microsoft.AspNetCore.Builder.ForwardedHeadersOptions
    答案为ai生成ForwardedHeadersOptions是ASP.NETCore中用于配置转发头部的一个类。当应用程序位于负载均衡器(https://blog.csdn.net/cyl101816/article/details/135195729)、反向代理服务器等后面时,由于HTTP请求会通过多个代理或转发,原始的请求头(如X-Forwarded-For和X-For......
  • ASP.NET Core 6 (.NET 6) 配置使用kestrel server
    原文链接:https://blog.csdn.net/weixin_52026996/article/details/135929070简介:Kestrel是一个跨平台的、开源的、轻量级的HTTP服务器,它是ASP.NETCore的默认Web服务器。Kestrel是跨平台的,因此可以在不同的操作系统上运行,包括Windows、Linux和macOS。本文主要介绍ASP.......
  • k8s-11-Kubernetes原理
    Kubernetes原理控制平面负责控制并使得整个集群正常运行。Etcd分布式持久化存储API服务器调度器控制器管理器工作节点负责容器的运行任务kubeletkube-proxy容器运行时(Docker、rkt等)附加组件DNS服务器仪表盘Ingress控制器Heapster(容器集群监控)容器......
  • hypernetwork在SD中是怎么工作的
    大家在stablediffusionwebUI中可能看到过hypernetwork这个词,那么hypernetwork到底是做什么用的呢?简单点说,hypernetwork模型是用于修改样式的小型神经网络。什么是StableDiffusion中的hypernetwork?Hypernetwork是由NovelAI开发的一种微调技术,NovelAI是StableDiffus......
  • Identity-aware Graph Neural Networks
    目录概ID-GNNYouJ.,Gomoes-SelmanJ.,YingR.andLeskovecJ.Identity-awaregraphneuralnetworks.AAAI,2021.概提出了一种能够超越1-WL-Test的GNN.ID-GNNID-GNN的motivation主要如下:主要到,传统的MPNN,即第\(k\)层:\[\mathbf{m}_u^{(k)}=\t......
  • 记一次 .NET某网络边缘计算系统 卡死分析
    一:背景1.讲故事早就听说过有什么网络边缘计算,这次还真给遇到了,有点意思,问了下chatgpt这是干嘛的?网络边缘计算是一种计算模型,它将计算能力和数据存储位置从传统的集中式数据中心向网络边缘的用户设备、传感器和其他物联网设备移动。这种模型的目的是在接近数据生成源头的......
  • java简单版学生管理系统(无登录,注册界面)
    学生管理系统按照要求定义学生类属性:id,姓名,年龄,家庭住址publicclassstudent{privateStringid;privateStringname;privateintage;privateStringaddress; //以下内容在IDEA中可以使用快捷键ALT+INSEATpublicstudent(){}......
  • .NET 缓存
    原文链接:https://blog.csdn.net/dabusidede/article/details/124858045内存缓存包:Microsoft.Extensions.Caching.Memory1.注册内存缓存services.AddMemoryCache();2.基本使用示例publicclassWorker:BackgroundService{privatereadonlyILogger<Worker>_logg......