autofac

WebAPI2使用Autofac实现IOC属性注入完美解决方案

二次信任 提交于 2020-04-27 03:01:32
WebAPI2使用Autofac实现IOC属性注入完美解决方案 一、前言 只要你是.NETer你一定IOC,IOC里面你也会一定知道Autofac,上次说了在MVC5实现属性注入,今天实现在WebApi2实现属性注入,顺便说一下autofac的程序集的注入方式,都会在后面的代码里面有提现 在WebAPI2使用Autofac注入的时候大多数人会出现如下问题: 未能加载文件或程序集“System.Web.Http, Version=5.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35”或它的某一个依赖项。找到的程序集清单定义与程序集引用不匹配。 (异常来自 HRESULT:0x80131040) 截图如下: 这个是Autofac强依赖造成的,比较坑的。解决办法如下。 Nuget添加Microsoft.AspNet.WebApi 或通过NuGet 程序包管理器控制台添加: Install-Package Microsoft.AspNet.WebApi Update-Package Microsoft.AspNet.WebApi -reinstall(存在) 原因:我们新建的是一个空的MVC项目,缺少引用 先上个结构图,结构图只是为了说明webAPI如何简单使用Autofac实现属性注入。 属性注入存在安全隐患

第一章 搭建一个通用的.net core项目框架

女生的网名这么多〃 提交于 2020-04-27 02:39:45
项目目标部署环境:CentOS 7+ 项目技术点:.netcore2.0 + Autofac +webAPI + NHibernate5.1 + mysql5.6 + nginx 开源地址:https://github.com/wmowm/nh.core 作为.net开发人员,我们最熟悉的肯定是经典的三层架构了 这里插入一个题外话,很多人喜欢拿三层跟mvc,mvvm 做一些比较,它们共通的只有一点,就是解耦,三层架构指的是项目结构,一个项目可以搭建三层,加个IDAL 那就是四层了,也可以是N层,MVC只是 UI层里的一个设计模式,mvvm只是前端的一种设计模式,例如vue 我们这里就基于经典的三层,进行拓展,并说明彼此之间关系 先说DAL数据访问层,很多小伙伴喜欢用ADO.net来操作数据库,简单方便,手写sql简洁又高效,这方面进行封装的栗子也很多,先创建一个DAL层,然后Nuget找.net core里操作SQL SERVER的驱动,测试链接,再测试CRUD,测试通过,完美! 刚高兴了一秒,反过来想想,好像有点不对劲,我们部署的目标环境是Linux,Linux上面好像没听说谁用SQL SERVER,用MySQL的最多,难道再去找MySQL的驱动......如果项目需求变了,随便往表里删除几个字段,加几个字段,那估计要崩溃 如何兼容多种数据库? ORM粉末登场,呸,闪亮登场...

从零开始搭建WebAPI Core_SqlSugar管理系统 (持续更新中......)

拥有回忆 提交于 2020-04-27 02:37:58
从零开始搭建WebAPI Core_SqlSugar管理系统 前言 本系列皆在从零开始逐步搭建,后台管理系统服务端部分,后续还会推出前端部分。 这次的目的是搭出一个功能完善的 本次系列技术栈以下几个部分组成: .Net Core WebAPI SqlSugar 全新的ORM框架技术 AutoFac 替代.NET自带的依赖注入 Swagger 作为接口显示文档并进行测试(后期可通过PostMan进行) CORS 跨域操作设置 这一些列是在搭建的同时同步编码,一来可以做个备份,二来可以让自己坚持将这件事做下去 目录 (持续更新中......) 从零开始搭建WebAPI Core_SqlSugar管理系统(一) 项目环境需求以及项目搭建 原文出处:https://www.cnblogs.com/mikeqi/p/11644636.html 来源: oschina 链接: https://my.oschina.net/u/4387124/blog/3250822

webapi框架搭建-依赖注入之autofac

≯℡__Kan透↙ 提交于 2020-04-27 02:33:08
webapi框架搭建系列博客 前言   c#的依赖注入框架有unity、autofac,两个博主都用过,感觉unity比较简单而autofac的功能相对更丰富(自然也更复杂一点),本篇将基于前几篇已经创建好的webapi项目,引入autofac功能。   前面我们已经搭建好webapi,并用了owin技术。这篇的autofac也将基于这两种技术进行开发。 步骤 引入包 共三个nuget包:Autofac.WebApi2,Autofac.Owin, Autofac.WebApi2.Owin autofac注册组件 using System.Reflection; using Autofac; using Autofac.Integration.WebApi; using webapi.example; namespace webapi.AutoFac { public static class ContainerBuilerCommon { public static IContainer GetWebApiContainer() { var builder = new ContainerBuilder();        // 注册webapi的所有控制器 builder.RegisterApiControllers(Assembly.GetExecutingAssembly())

net core WebApi——依赖注入Autofac

为君一笑 提交于 2020-04-26 12:41:38
目录 前言 Autofac 添加一个Util来随时调用 小结 代码地址 预告 前言 周末加班,下午犯困,整理下之前鼓捣过的东西,看过我之前的webapi系列的读者知道,我之前试过Aspect,但是升级到3.0之后没往下去试了,当时还留了个坑,这不,现在果断移除了换成这个了。 Autofac 这个第三方类库呢,是Ioc的容器,可以简化我们很大的工作量,比如说在之前我们需要写个类去声明接口与实现,而用了这个容器呢,就不需要了,当然还是需要些配置的。 首先,引入第三方类库,不多说。 然后开始配置吧,首先先来看Program,添加 AutofacServiceProviderFactory 。 public static IHostBuilder CreateHostBuilder(string[] args) => Host.CreateDefaultBuilder(args) .ConfigureWebHostDefaults(webBuilder => { webBuilder.UseStartup<Startup>(); }) .UseServiceProviderFactory(new AutofacServiceProviderFactory()); 改完之后呢,我们果断就来到了Startup,只要是配置,当然要看入口文件跟这个配置文件了。 3

net core WebApi——依赖注入Autofac

隐身守侯 提交于 2020-04-26 11:38:32
目录 前言 Autofac 添加一个Util来随时调用 小结 代码地址 预告 前言 周末加班,下午犯困,整理下之前鼓捣过的东西,看过我之前的webapi系列的读者知道,我之前试过Aspect,但是升级到3.0之后没往下去试了,当时还留了个坑,这不,现在果断移除了换成这个了。 Autofac 这个第三方类库呢,是Ioc的容器,可以简化我们很大的工作量,比如说在之前我们需要写个类去声明接口与实现,而用了这个容器呢,就不需要了,当然还是需要些配置的。 首先,引入第三方类库,不多说。 然后开始配置吧,首先先来看Program,添加 AutofacServiceProviderFactory 。 public static IHostBuilder CreateHostBuilder(string[] args) => Host.CreateDefaultBuilder(args) .ConfigureWebHostDefaults(webBuilder => { webBuilder.UseStartup<Startup>(); }) .UseServiceProviderFactory(new AutofacServiceProviderFactory()); 改完之后呢,我们果断就来到了Startup,只要是配置,当然要看入口文件跟这个配置文件了。 3

eShopOnContainers 知多少[4]:Catalog microservice

我的未来我决定 提交于 2020-04-22 07:21:48
引言 Catalog microservice(目录微服务)维护着所有产品信息,包括库存、价格。所以该微服务的核心业务为: 产品信息的维护 库存的更新 价格的维护 架构模式 如上图所示,本微服务采用简单的数据驱动的CRUD微服务架构,来执行产品信息的创建、读取、更新和删除(CRUD)操作。 这种类型的服务在单个 ASP.NET Core Web API 项目中即可实现所有功能,该项目包括数据模型类、业务逻辑类及其数据访问类。其项目结构如下: 核心技术选型: ASP.NET Core Web API Entity Framework Core SQL Server Swashbuckle(可选) Autofac Eventbus Polly 实体建模 该微服务的核心领域实体是商品,其类图如下: 对于实体这一块,有两个小知识点需要说明一下: 进行数据库字段映射时,主键都使用了 ForSqlServerUseSequenceHiLo 指定使用 HI-LO 高低位序列进行主键生成。 使用NoTracking提升查询速度 在 CatalogController 的构造方法中,明确指定以下代码来进行查询优化,这一点也是我们值得学习的地方。 ((DbContext)context).ChangeTracker.QueryTrackingBehavior =

我的第一个开源.NET Core项目

天涯浪子 提交于 2020-04-17 02:08:59
【推荐阅读】微服务还能火多久?>>> 背景介绍 我的第一个开源.NET Core 项目,功能很多,BUG肯定有,代码不是特别好,大佬勿喷!开源,随便搞哈! 软件架构 框架:.NET Core3.1 ORM:SqlSugar 数据库:Sqlserver08R2+ 后端UI:Layui 日志记录:log4+nlog 缓存:内存缓存+redis缓存 授权:基于cookie的JWT授权 IOC:使用Autofac框架进行构造函数注入 项目截图: 使用教程 直接 debug启动,数据库配置在appsettings.json文件里面 项目类型 :BS 项目地址 : https://gitee.com/duling/DL 功能模块 : 系统管理   字典类型管理   字典值   组织机构   菜单管理   日志管理   角色管理   管理员管理   图片管理   前端栏目管理 网站管理   用户管理   评论管理   关于我们   网站留言   友情链接管理   广告模块   广告位置   学校内容模块   文章模块   高校模块   标签模块 工具模块   代码生成 项目截图 : 来源: oschina 链接: https://my.oschina.net/u/4390958/blog/3236257

None of the constructors found with 'Autofac.Core.Activators.Reflection.DefaultConstructorFinder' on type

瘦欲@ 提交于 2020-04-14 07:43:30
问题 I have read many questions about this problem on SO but I could not figure out what is the issue with my implementation. I am getting following exception: None of the constructors found with 'Autofac.Core.Activators.Reflection.DefaultConstructorFinder' on type 'SampleAuthTemplate.Domain.Entities.Core.Repositories.Concrete.EntityRepository`1[SampleAuthTemplate.Domain.Entities.Order]' can be invoked with the available services and parameters: ↵Cannot resolve parameter 'SampleAuthTemplate.Domain

None of the constructors found with 'Autofac.Core.Activators.Reflection.DefaultConstructorFinder' on type

大城市里の小女人 提交于 2020-04-14 07:43:09
问题 I have read many questions about this problem on SO but I could not figure out what is the issue with my implementation. I am getting following exception: None of the constructors found with 'Autofac.Core.Activators.Reflection.DefaultConstructorFinder' on type 'SampleAuthTemplate.Domain.Entities.Core.Repositories.Concrete.EntityRepository`1[SampleAuthTemplate.Domain.Entities.Order]' can be invoked with the available services and parameters: ↵Cannot resolve parameter 'SampleAuthTemplate.Domain