asp.net core在其他程序集获取HttpContext
首先在Program.cs中,注册
builder.Services.AddHttpContextAccessor();
Program.cs完整代码:
using Microsoft.AspNetCore.Mvc.Filters;
using Microsoft.CodeAnalysis.CSharp.Syntax;
using System.Text.Encodings.Web;
using System.Text.Unicode;
using WebReportInfoNetCore7;
using WebReportInfoNetCore7.DataBaseEntity;
using WebReportInfoNetCore7.IBLL;
using WebReportInfoNetCore7.IBLL_impl;
using WebReportInfoNetCore7.IDAO;
using WebReportInfoNetCore7.IDAO_impl;var builder = WebApplication.CreateBuilder(args);//依赖注入
builder.Services.AddSingleton<IAh_userDao, Ah_userDao>();
builder.Services.AddSingleton<IUserBll, UserBll>();// Add services to the container.
builder.Services.AddControllersWithViews(ops => {//全局异常过滤器,注册ops.Filters.Add<ExceptionFilter>();
})//Microsoft.AspNetCore.Mvc.NewtonsoftJson
.AddNewtonsoftJson(options =>
{options.SerializerSettings.ContractResolver = new Newtonsoft.Json.Serialization.DefaultContractResolver();
});builder.Services.AddSession();//IHttpContextAccessor 在其他程序集中获取HttpContext
builder.Services.AddHttpContextAccessor();//解决输入页面中文被编码了
builder.Services.AddSingleton(HtmlEncoder.Create(UnicodeRanges.All));var app = builder.Build();// Configure the HTTP request pipeline.
if (!app.Environment.IsDevelopment())
{app.UseExceptionHandler("/Home/Error");
}
app.UseStaticFiles();app.UseRouting();app.UseAuthorization();
app.UseSession();app.MapControllerRoute(name: "default",pattern: "{controller=Home}/{action=Index}/{id?}");AppServicesHelpter.App = app;//Microsoft.AspNetCore.Session.ISessionStore
//IHttpContextAccessor Accessor = app.Services.GetService<IHttpContextAccessor>();app.Run();
其他程序集中获取,其他程序集需要引用文件:Microsoft.AspNetCore.Http.Abstractions.dll
文件位置:
C:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\7.0.5\ref\net7.0
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;using Microsoft.AspNetCore.Builder;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.AspNetCore.Http;
using WebReportInfoNetCore7.ViewEntity;
using System.Net.Http;
using System.Runtime.CompilerServices;namespace WebReportInfoNetCore7.DataBaseEntity
{/// <summary>/// 依赖注册,获取接口实例/// </summary>/// 创建时间:2023-10-8 16:03:39 public sealed class AppServicesHelpter{/// <summary>/// 程序/// </summary>public static Microsoft.AspNetCore.Builder.WebApplication App { get; set; }/// <summary>/// 获取接口实例/// </summary>/// <typeparam name="T"></typeparam>/// <returns></returns>public static T GetServices<T>() where T : notnull{T instance = App.Services.GetRequiredService<T>();return instance;}/// <summary>/// 获取当前登录用户/// </summary>/// <returns></returns>/// 创建时间:2023-10-10 14:48:23, public static Ah_userView CurrentLoginUser(){Microsoft.AspNetCore.Http.IHttpContextAccessor accessor = App.Services.GetService<Microsoft.AspNetCore.Http.IHttpContextAccessor>();string json = accessor.HttpContext.Session.GetString("userLogin");return Newtonsoft.Json.JsonConvert.DeserializeObject<Ah_userView>(json);}}
}
微软文档:
https://learn.microsoft.com/zh-cn/aspnet/core/fundamentals/http-context?view=aspnetcore-7.0
相关文章:
asp.net core在其他程序集获取HttpContext
首先在Program.cs中,注册 builder.Services.AddHttpContextAccessor();Program.cs完整代码: using Microsoft.AspNetCore.Mvc.Filters; using Microsoft.CodeAnalysis.CSharp.Syntax; using System.Text.Encodings.Web; using System.Text.Unicode; us…...
UWB NI框架嵌入式实现——Qorvo示例
在Qorvo提供的DW3000示例代码中,实现了与Apple的NI框架的互通的示例,本文中针对其示例程序进行简要的分析。测试中使用Qorvo提供的模块,该模块为nRF52833DW3000的架构。 1. Qorvo相关库文件 Qorvo在提供示例时,仅提供了相关的库文…...
Linux OS源的问题记录
场景 安装了一台Linux虚拟机充当服务器,准备搭建一个elk环境,我使用命令安装docker的时候,报错提示 YumRepo Error: All mirror URLs are not using ftp, http[s] or file.Eg. Invalid release/repo/arch combination/ removing mirrorlist…...
数据库:Hive转Presto(五)
此篇将所有代码都补充完了,之前发现有的代码写错了,以这篇为准,以下为完整代码,如果发现我有什么考虑不周的地方,可以评论提建议,感谢。代码是想哪写哪,可能比较繁琐,还需要优化。 …...
SQL中for xml path 的用法
1. 用法 是一种将查询结果转换为 XML 格式的方法。它可以将查询结果中的每一行转换为一个 XML 元素,并且可以指定元素的名称和属性。 2. 应用示例 有一张学生选修课程的表,如下图所示 希望整合成下图所示效果 --建表 if object_id(StudentInfo,u) is…...
【TensorFlow2 之014】在 TF 2.0 中实现 LeNet-5
一、说明 在这篇文章中,我们将展示如何在 TensorFlow 中实现像 \(LeNet-5\) 这样的基础卷积神经网络。LeNet-5 架构由 Yann LeCun 于 1998 年发明,是第一个卷积神经网络。 数据黑客变种rs 深度学习 机器学习 TensorFlow 2020 年 2 月 29 日 | 0 …...
【2023】redis-stream配合spring的data-redis详细使用(包括广播和组接收)
目录 一、简介1、介绍2、对比 二、整合spring的data-redis实现1、使用依赖2、配置类2.1、配置RedisTemplate bean2.2、异常类 3、实体类3.1、User3.2、Book 4、发送消息4.1、RedisStreamUtil工具类4.2、通过延时队列线程池模拟发送消息4.3、通过http主动发送消息 5、dz…...
飞书应用机器人文件上传
背景: 接上一篇 flask_apscheduler实现定时推送飞书消息,当检查出的异常结果比较多的时候,群里会有很多推送消息,一条条检查工作量会比较大,且容易出现遗漏。 现在需要将定时任务执行的结果记录到文件,…...
高版本Mac系统如何打开低版本的Xcode
这里写目录标题 前言解决方案 前言 大家偶尔也碰见过更新Mac系统后经常发现低版本的Xcode用不了的情况吧.基本每年大版本更新之后都可以在各个开发群里碰见问这个问题的. 解决方案 打开访达->应用程序->选中打不开的那个版本的Xcode并且右键显示包内容->Contents-…...
测试H5需要注意的交互测试用例点
H5(HTML5)是一种用于构建网页的标准,可以实现丰富的交互和功能。测试H5交互通常涉及到验证网页在各种情况下的行为,包括用户输入、按钮点击、页面加载等等。以下是一些可能的H5交互测试用例: 页面加载: 验…...
1014蓝桥算法双周赛,学习算法技巧,助力蓝桥杯
家人们,我来免费给大家送福利了!!! 【1014蓝桥算法双周赛 】 背景 蓝桥杯全国软件和信息技术专业人才大赛是由工业和信息化部人才交流中心举办的全国性IT学科赛事。参赛高校超过1200余所,累计参赛人数超过40万人。该…...
C语言之通讯录的实现篇
目录 test.c 主菜单menu 创建通讯录con 初始化通讯录InitContact 增加个人信息AddContact 展示个人信息ShowContact 删除个人信息DelContact 查找个人信息SearchContact 修改个人信息ModifyContact test.c总代码 contact.h 头文件包含 PeoInfo_个人信息的设置声…...
如何降低海康、大华等网络摄像头调用的高延迟问题(二)
目录 1.RTSP介绍 2.解决办法1 3.解决办法2 1.RTSP介绍 RTSP(Real-time Streaming Protocol)是一种用于实时流媒体传输的网络协议。它被设计用于在服务器和客户端之间传输音频、视频以及其他流媒体数据。 RTSP协议允许客户端通过与服务器建立RTSP会话…...
centos清理日志和缓存
今天使用redmine修改密码,修改报错,再去试试创建用户,创建用户的页面直接报错显示不出来。然后看了一下服务器,发现服务器磁盘空间全部占满了。 CentOS系统也会在使用很长一段时间后出现硬盘空间开始不够的情况,而这并…...
排序算法的稳定性
什么是排序算法的稳定性? 排序算法的稳定性: 假定在待排序的记录序列中,存在多个具有相同的关键字的记录,若经过排序,这些记录的相对次序保持不变,即在原序列中,r[i] r[j],且 r[i…...
kafka属性说明
kafka中关于一些字段说明 groupId :标识消费者分组id,如果多个消费者id相同,就表示这几个消费者是一组,当一组多个消费者消费同一个topic时,一组中只会有一个成功消费 代码如下 这时只会有一条消息被消费...
STM32F4使用ucosii时操作浮点数卡死的问题
STM32F4使用ucosii时操作浮点数卡死的问题_stm32 fpu float 程序跑不起来_shou撕代码的博客-CSDN博客...
python练习:赋值运算 => 输入身高,体重,求BMI = 体重(kg)/身高(m)的平方。
赋值运算 > 输入身高,体重,求BMI 体重(kg)/身高(m)的平方。 代码: height float(input(‘请输入您的身高(m):’)) weight float(input(‘请输入您的体重(kg):’))…...
PCL ICP精配准(点到点)
文章目录 一、简介二、实现过程三、实现效果参考资料一、简介 迭代最近点(ICP)算法作为是目前最常用的刚性点集配准方法,它有着简单、计算复杂度低等优点,该算法的具体计算过程如下: (1)在目标点云P中取点集 p i ∈ P p_i∈P p...
Redis数据缓存(Redis的缓存击穿和穿透的区别)
Redis是一个高性能的内存中数据存储系统,可以使用它作为数据缓存。使用Redis作为数据缓存可以提高应用程序的性能和可伸缩性,因为Redis运行在内存中,读写速度非常快。 Redis支持许多数据结构,如字符串、哈希表、列表、集合和有序…...
保姆级教程:用UniApp+佳博打印机实现小票与条形码打印(含完整TSC/ESC指令封装)
UniApp佳博打印机实战:从蓝牙连接到小票打印的全流程解析 在移动零售和仓储管理场景中,蓝牙小票打印是提升工作效率的关键环节。本文将手把手带您实现UniApp与佳博打印机的深度整合,涵盖蓝牙连接管理、TSC/ESC指令封装、40mm50mm小票排版等核…...
嵌入式开发五大常见Bug解析与解决方案
1. 嵌入式开发中的五大常见Bug根源解析在嵌入式系统开发领域,代码质量直接关系到产品的可靠性和稳定性。作为一名经历过多个嵌入式项目的开发者,我深刻体会到某些类型的bug特别顽固且难以排查。这些bug往往在实验室测试中难以复现,却在现场运…...
避坑指南:从零搭建Anaconda+CUDA+PyTorch+Pycharm深度学习环境
1. 深度学习环境配置全景图 刚接触深度学习的新手往往会在环境配置这一步卡住好几天。我见过太多人在Anaconda、CUDA、PyTorch的版本兼容性问题上来回折腾,最后连代码都没开始写就放弃了。其实只要理解这四个核心组件的关系,配置过程就会变得清晰很多。 …...
从理论到实践:LSTM与Qwen1.5-1.8B GPTQ在时序预测任务中的对比
从理论到实践:LSTM与Qwen1.5-1.8B GPTQ在时序预测任务中的对比 最近在折腾时间序列预测,发现一个挺有意思的现象。大家一提到时序预测,脑子里蹦出来的第一个词可能就是LSTM,这几乎成了这个领域的“标配”。但另一边,以…...
H5端微信登录实战:从配置到用户信息获取的全流程解析
1. 为什么需要H5端微信登录? 每次开发新项目时,用户注册环节总是让人头疼。传统的账号密码注册方式,不仅流程繁琐,还经常遇到用户忘记密码的问题。我在去年开发一个电商H5项目时,就发现超过60%的用户流失都发生在注册…...
2026年零基础部署 OpenClaw 快速接入api图文步骤流程
OpenClaw怎么集成?2026年阿里云新手3分钟安装喂奶级流程。本文面向零基础用户,完整说明在轻量服务器与本地Windows11、macOS、Linux系统中部署OpenClaw(Clawdbot)的流程,包含环境配置、服务启动、Skills集成、阿里云百…...
HeliOS:面向嵌入式设备的零上下文切换RTOS
1. 项目概述HeliOS 是一款面向资源受限嵌入式设备的轻量级、开源、免费使用的实时内核(RTOS),其定位并非传统意义上的通用操作系统,而是一个高度可裁剪、零上下文切换开销的多任务调度内核。它专为 Arduino、ARM Cortex-M 等低功耗…...
终极指南:如何在浏览器中快速将HTML转换为Word文档
终极指南:如何在浏览器中快速将HTML转换为Word文档 【免费下载链接】html-docx-js Converts HTML documents to DOCX in the browser 项目地址: https://gitcode.com/gh_mirrors/ht/html-docx-js 你是否需要将网页内容导出为可编辑的Word文档?htm…...
Boss-Key终极指南:3分钟掌握Windows隐私保护神器
Boss-Key终极指南:3分钟掌握Windows隐私保护神器 【免费下载链接】Boss-Key 老板来了?快用Boss-Key老板键一键隐藏静音当前窗口!上班摸鱼必备神器 项目地址: https://gitcode.com/gh_mirrors/bo/Boss-Key 在数字化办公时代,…...
树莓派无头模式终极指南:不接显示器,用SSH+VNC搞定所有开发调试
树莓派无头模式终极指南:不接显示器,用SSHVNC搞定所有开发调试 当你把树莓派塞进机器人底盘、挂在墙上作为智能家居中枢,或是藏在机柜里充当服务器时,最不想看到的就是拖着一堆显示器和线材。作为嵌入式开发老手,我经历…...
