最新要闻
- 天天亮点!汽车降价潮蔓延!成都豪撒1亿购车补贴 汽车流通协会称武汉汽车降价不公平
- 【天天热闻】俞敏洪称下辈子宁愿当没钱的流浪汉:自己周围的企业家都在没日没夜的干活
- 比亚迪出海再下一城!乌兹比克斯坦三车齐发:宋PLUS 22万起售
- 【全球速看料】差距有多大?一图看懂蔚来、小鹏、理想汽车2022年第四季度财报:老大变了
- 每日速读!水晶球档杆绝无仅有!韩系豪华电动车捷尼赛思GV60上市:28.58万起
- 【全球聚看点】还买什么汉兰达!全新大七座SUV福特锐界L开售:22.98万历史新低
- 【世界速看料】超市6500元招聘引学生排队投简历 负责人:已收到五十多份
- 世界看点:南宁市2023年事业单位统一考试简章发布 337个岗位共招1764人
- 何小鹏:王凤英一周工作七天、让大家很卷
- 何小鹏谈竞争对手降价:油车一定会反击、小鹏将降低25%生产成本
- 天天亮点!听闻索尼PS5 Pro主机明年发售后:老玩家们集体不干了
- 环球通讯!日本女大胃王菅原初代患肠癌病逝:曾10分钟吞399碗荞麦面
- 全球热点评!美国一核电站承认150万升核污染水泄漏:已隐瞒数月
- 导演郭帆都看不下去!众筹1亿的《流浪地球2》周边 为啥要偷工减料?
- 说句话就能做表格、PPT!微软把GPT-4塞进办公套件 我慌了
- 每日热门:喉结左侧有个硬疙瘩_左侧睾丸里有个小疙瘩是什么
手机
iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
- 警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- 男子被关545天申国赔:获赔18万多 驳回精神抚慰金
- 3天内26名本土感染者,辽宁确诊人数已超安徽
- 广西柳州一男子因纠纷杀害三人后自首
- 洱海坠机4名机组人员被批准为烈士 数千干部群众悼念
家电
【聚看点】Source Generator初探
Source Generator
什么是Source Generator
.NET 5引入的系特性,可在应用编译期间根据当前编译信息动态生成代码,也可以直接引用动态生成的代码。
优势
加快运行速度
原有的程序机制是初次运行时通过反射进行依赖注入,这时会导致第一次运行加载大量数据,运行会慢,再一个不利于AOT编译。
而Source Generator是在编译时完成依赖注入,把之前运行所作的大部分工作都完成,这样即可利于AOT编译,又可以保证运行时的速度。
(资料图)
增加了代码的灵活性
将运行时加载变为了编译时加载,可以让程序在编译时动态加载程序员想要的代码,这些代码可以来源于Xml,JSON等文件,依次类推,我们可以通过维护Xml或者JSON来动态编译实现无代码平台。
解决AOT编译
AOT也是一个新特性,但使用反射的程序无法使用该特性,使用Source Generator可避免AOT特性无法使用的情况。
第一个Source Generator例子
创建一个控制台程序
选择控制台应用,下一步
创建项目名称,下一步
框架选择默认(目前默认的为Net 6.0),并勾选不适用顶级语句,创建项目
修改Program.cs代码,修改部分如下:
namespace SourceGeneratorDemo{ // internal 改为 partial,否则可见级别太低,使用public的话Program可见级别太高 partial class Program { static void Main(string[] args) { Console.WriteLine("Hello, World!"); // 添加该行 HelloCode("Hello, Code"); } // 添加该行 动态编译并调用HelloCode static partial void HelloCode(string name); }}
此时,直接编译并运行可通过,HelloCode方法未找到会自动跳过
创建netstandard2.0的类库项目
选择类库项目,下一步
添加项目名称,下一步
选择框架(netstandard2.0),创建
添加Microsoft.CodeAnalysis.Analyzers 和 Microsoft.CodeAnalysis.CSharp依赖,依赖项信息可通过点击项目进行查看
all runtime; build; native; contentfiles; analyzers; buildtransitive 将Class1.cs改名为SourceGeneratorMethod.cs,并添加代码
[Generator]public class HelloSourceGenerator : ISourceGenerator{ public void Execute(GeneratorExecutionContext context) { // Find the main method var mainMethod = context.Compilation.GetEntryPoint(context.CancellationToken); // Build up the source code string source = $@"//
using System;namespace {mainMethod.ContainingNamespace.ToDisplayString()}{{public static partial class {mainMethod.ContainingType.Name}{{ static partial void HelloCode(string name) => Console.WriteLine($""Generator says: Hi from "{{name}}""");}}}}"; var typeName = mainMethod.ContainingType.Name; // Add the source code to the compilation context.AddSource($"{typeName}.g.cs", source); } public void Initialize(GeneratorInitializationContext context) { // No initialization required for this one }} 编译SourceGenerator项目
在控制台中添加对类库的依赖
SourceGeneratorDemo项目中选择依赖项,点击右键添加项目引用,引用类库项目
双击SourceGeneratorDemo项目,添加
OutputItemType
和ReferenceOutputAssembly
属性生成SourceGeneratorDemo并运行
结果,并没有输出Hello, Code
问题解决
重新打开项目
将Microsoft.CodeAnalysis.Analyzers 和 Microsoft.CodeAnalysis.CSharp引用修改为如下引用:
all runtime; build; native; contentfiles; analyzers; buildtransitive 清理SourceGenerator和SourceGeneratorDemo项目
重新运行,出现了Hello,Code
原因判断:
经测试,Microsoft.CodeAnalysis.Analyzers可不使用,只需要引用Microsoft.CodeAnalysis.CSharp即可
Microsoft.CodeAnalysis.CSharp的4.5.0版本和4.6.0-1.final执行无法达到效果,还未找到原因
关键词:
微博图床被废,自己动手丰衣足食。
【聚看点】Source Generator初探
4、AOP
天天亮点!汽车降价潮蔓延!成都豪撒1亿购车补贴 汽车流通协会称武汉汽车降价不公平
【天天热闻】俞敏洪称下辈子宁愿当没钱的流浪汉:自己周围的企业家都在没日没夜的干活
比亚迪出海再下一城!乌兹比克斯坦三车齐发:宋PLUS 22万起售
世界聚焦:调查显示民众预期英国央行将继续加息
【全球速看料】差距有多大?一图看懂蔚来、小鹏、理想汽车2022年第四季度财报:老大变了
每日速读!水晶球档杆绝无仅有!韩系豪华电动车捷尼赛思GV60上市:28.58万起
世界速讯:你对Linux窗口管理程序Tmux了解吗
【全球聚看点】还买什么汉兰达!全新大七座SUV福特锐界L开售:22.98万历史新低
【世界速看料】超市6500元招聘引学生排队投简历 负责人:已收到五十多份
世界看点:南宁市2023年事业单位统一考试简章发布 337个岗位共招1764人
【当前独家】读Java性能权威指南(第2版)笔记20_垃圾回收G
何小鹏:王凤英一周工作七天、让大家很卷
何小鹏谈竞争对手降价:油车一定会反击、小鹏将降低25%生产成本
springboot跨域问题解决方案
天天亮点!听闻索尼PS5 Pro主机明年发售后:老玩家们集体不干了
环球通讯!日本女大胃王菅原初代患肠癌病逝:曾10分钟吞399碗荞麦面
全球热点评!美国一核电站承认150万升核污染水泄漏:已隐瞒数月
导演郭帆都看不下去!众筹1亿的《流浪地球2》周边 为啥要偷工减料?
说句话就能做表格、PPT!微软把GPT-4塞进办公套件 我慌了
每日热门:喉结左侧有个硬疙瘩_左侧睾丸里有个小疙瘩是什么
AIGC的下一站是什么?
速读:vue2前端导出带背景色表格 xlsx xlsx-style
环球新资讯:Attention与SelfAttention
五角大楼官员表示:太阳系中可能存在外星母舰探测地球
环球消息!每日机构分析:3月17日
fiddler:The system proxy was changed.Click to reenable capturing
iPhone 15 Pro Max屏幕边框窄爆:将打破小米13纪录
99元 联想YOGA新款M5无线鼠标上架:鹅卵石设计
张裕葡小萄赤霞珠甜红葡萄酒2支到手39.9元:酒香浓郁
世界热讯:手机百度文库的下载券怎么用啊 为什么(百度文库不能用下载券)
网红店半天妖烤鱼被曝垃圾桶捞回食材上桌!合肥市监局:全市门店停业
天天微头条丨赛博2077支持DLSS3 iGame RTX 40显卡实战:性能2倍提升
河南三月飞雪 突降大雪竟与人工增雨有关
中金所就30年期国债期货合约征求意见
世界观速讯丨铭瑄发布旗舰级MGG RTX 4080、4070 Ti:丧心病狂5风扇、9热管
【焦点热闻】AMD份额涨不动了 专家称Intel的麻烦已结束:CPU竞争力更强
每日视点!山东一公司疑设卑劣人员从业跟踪岗:你去哪我就发函到哪
微头条丨铲屎官注意!研究表明养宠物或影响睡眠
热点评!你买过大船货吗?男子电动滑板车藏84个SSD入境被海关查获
全球新消息丨如何在Docker下部署nacos并注册Java服务
每日讯息!记录--vue中封装一个右键菜单组件(复制粘贴即可使用)
【新要闻】一汽奔腾销量惨淡,靠预售23.58万起的奔腾M9有望逆转吗?
天天快资讯:车主注意:新一轮国内油价降了!加满一箱油将少花4元
焦点要闻:全球最大集装箱船将在宁波舟山港开启首航:比航母还长
今日热讯:接二连三胜!长三乙火箭成功发射高分十三号02星
环球快资讯:《三体》动画播放量破5亿!豆瓣评分暴跌至3.9 差评率高达86%
票房已突破45亿!《满江红》宣布密钥再次延期
全球热门:“315”曝光:带货直播间水军泛滥,该如何应对?
天天观速讯丨债市日报:3月17日
消防车被小车挡道 业主联系未果合力掀翻!车主不干了
滚动:让越野车无路可走!极氪001成功挑战原路虎越野基地
世界热门:座椅加热1299元!smart回应硬件订阅:预埋硬件算送的 成本没进卖车价
环球快播:何炅再提《快乐大本营》:引发网友感慨
全球实时:1个案例读懂——游戏产品如何用 A/B 测试做增长
当前消息!Tailwind CSS 备忘清单_开发速查表分享
python __new__方法与单例模式
【当前热闻】前端有边界,但低代码没有
【快播报】Application Loader及Transporter App上传ipa外、可以在Windows上架iOS APP工具
当前播报:腊肉的保质期多长?
法兴银行:欧洲央行加息对欧元区国家息差的影响越来越小
支持小米、OPPO!三星查询手机OLED屏幕网站上线:你用的啥屏?
通讯!第二代骁龙7+首次支持双5G双卡双通:4.4Gbps网速、Wi-Fi翻倍
观察:性能提升达2倍!真我GT Neo5 SE官宣搭载第二代骁龙7+
索尼背水一战!PS5 Pro已在路上
环球今热点:刹车失灵?福特全球召回近130万辆汽车
世界热资讯!使用代理以及搭建代理池
河南突降大雪:农户40亩葡萄棚被压塌、郑州多个仓库倒塌损失惨重
天天快看点丨卢伟冰现身高通发布会!Redmi全球首发第二代骁龙7+
动态焦点:性能提升2倍!高通正式发布第二代骁龙7+移动平台
环球快消息!前端使用EasyWasmPlayer.js接入hls协议h265编码视频
当前速讯:[EF Core] EF Core Code-First 移除外键 —— 重写SQL生成器
当前快看:带发行版 Logo 的系统信息显示工具
天天快报!歌曲.在我心里没有谁能够代替你原唱_在我心里没有谁能代替你简谱歌谱
文心一言申请测试企业达7.6万 百度股价上涨近15%
锦心似玉林世显是什么身份?锦心似玉林世显的出场有什么作用吗?
人世间冯化成哪集出轨的?人世间冯化成最后的结局是什么?
小米3的充电线是哪种头?小米3手机跑分是多少?
小天鹅洗衣机脱水不干是什么原因?小天鹅洗衣机24小时服务热线
热议:zynq基于DMA的串口传图
天龙八部单机版怎么下载?天龙八部单机版武功搭配
环球头条:899元 雷蛇帝王蝶鼠标垫发布:钢化玻璃一体成型
天天微速讯:6岁女童看店 2人用98元买走60根虫草引热议:无耻不道德行为、交易无效
全球简讯:特斯拉不好惹!网红车评人“蔡老板”被判道歉赔10万后:维持原判 不得上诉
落地成盒!苹果可折叠手机新专利:掉落自动闭合
环球观察:又一网红店翻车 半天妖烤鱼被曝垃圾桶捞回餐食又端上桌 你吃过没
今头条!python 排序算法
天天通讯!uni-app 实现轮播图组件父容器背景色随图片主题色改变
全球短讯!iQOO Z7对标旗舰配置:OIS光学防抖、NFC全都有
性价比领先RTX 3060多达78% Intel Arc新驱动优化《暗黑4》等游戏
造谣蔚来因质量失控酿车祸 车评人被判向蔚来道歉、赔偿8万元
全球快报:发放37亿元购车补贴 单车最高降价5万!上汽大众回应
焦点速读:58元 国产单机游戏《二分之一》正式发售:近百位角色 文本超25万字
【时快讯】好多人说驱鼠器不管用是真的吗为什么(好多人说驱鼠器不管用是真的吗)
热点在线丨前端操作cookie的用法
世界最新:数据湖选型指南|Hudi vs Iceberg 数据更新能力深度对比
快讯:全网最详细中英文ChatGPT接口文档(四)30分钟快速入门ChatGPT——Models模型
git回退到某个提交