最新要闻
- 焦点报道:许昌市东城区:普法宣传进校园 精心护苗筑平安
- 【全球时快讯】NVIDIA最新调查:80%的RTX 40系显卡用户会启用光追和DLSS
- 【天天播资讯】侧透玻璃机箱!微星海皇戟AS台式机上新:i7+RTX 4070
- 世界新消息丨同跑硬件杀手《赛博朋克2077》 RTX 4080与RTX 4090有多大差距?
- 世界今日讯!Win掌机不用指头戳屏幕了!Win12有望加入“掌机模式”
- 世界微动态丨下周一!国内油价预计涨0.44元/升 或创今年最大涨幅
- 尼尔森IQ:中国消费市场回暖 绿色变革赋能品牌可持续增长
- 世界热讯:简历上写QQ邮箱会掉分吗引热议 网友:邮箱也分三六九等?
- 全焦段光学覆盖!小米13 Ultra影像参数公布:1+3黄金组合
- 环球消息!4999元起 荣耀MagicBook 14 2023笔记本发布:5项世界第一
- 天天即时:优酷回应非会员遇3000多秒广告:bug已修复 是文案显示问题
- iPhone 15 Pro固态按键设计临时改了!只因难度太大
- 快看:本周最火AutoGPT!GitHub3.6万+标星:解决复杂任务全程无需人类插手
- 环球微速讯:性能升级 13代酷睿来了? 华为MateBook笔记本新品即将发布
- 曾力推每天睡4小时 张朝阳建议年轻人别睡懒觉不要熬夜
- 每日动态!李书福抢跑马斯克发小钢炮!冰箱彩电大沙发全标配:理想直呼内行
手机
iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
- 警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- 男子被关545天申国赔:获赔18万多 驳回精神抚慰金
- 3天内26名本土感染者,辽宁确诊人数已超安徽
- 广西柳州一男子因纠纷杀害三人后自首
- 洱海坠机4名机组人员被批准为烈士 数千干部群众悼念
家电
世界快播:Natasha入门(一)
什么是Natasha
Natasha是基于Roslyn 的动态程序构架库,说的直白一点就是将一个或多个cs文件进行动态编译并放入到正在运行的程序中去。例如我们有一个设备库,设备库中的设备会不定期的更新,那我们只需要将平台(展示和调用)完成,每次添加的时候使用Natasha生成设备类别和设备的调用代码,由平台统一调用。这样子就避免了每次调用都要重新生成和更新,每个设备模块都是单独的个体,个体出现bug不影响整个平台的正常工作。
Natasha使用场景
- 插件管理,开发一个平台,里面有各式各样的插件,插件可通过引用等方式动态添加
- 在线编码平台,在页面中输入代码,系统根据代码自动生成结果并展示
- 代码生成器,通过编写Entity或读取数据源中的数据来生成代码块,并通过Natasha动态编译到系统中
- 低代码平台
Natasha简单例子
下载最新版 Natasha源码 ,目前最新版本为v5.1.0.0
打开下载好的源码,编译src->CSharp->Natasha.CSharp项目,会生成如下两个dll
【资料图】
- Natasha.CSharp.dll
- Natasha.Domain.dll
创建一个空项目NatashaStudyApplication,然后再创建一个控制台项目NatashaStudyConsole,框架选择了.Net7。
需要额外使用NuGet添加三个引用
添加引用Microsoft.Extensions.DependencyModel,否则初始化时(NatashaInitializer.Preheating方法)会报错。
添加引用Microsoft.CodeAnalysis.CSharp,否则创建编译单元时会报错。
如果使用官网给出的例子,oop.Add方法会提示错误,需要额外安装Microsoft.CodeAnalysis.Common包。
在NatashaStudyConsols项目中创建dlls文件夹,将生成的Natasha.CSharp.dll和Natasha.Domain.dll都赋值到dlls文件夹中,为了防止丢失文件,我全部复制过来了
选择依赖项,点击右键添加项目引用,选择浏览,找到本项目的dlls文件夹,然后把两个dll都进行引入,引入后如图所示:
向Program中的Main中添加代码,官方给出的为声明一个class类,在使用该类时发现回报如下错误:
Predefined type "System.Object" is notdefinedorimported
"object" does notcontain a constructor that takes 0 arguments
该错误的意思是程序没有声明System.Object
方案一:基于Microsoft.Extensions.DependencyModel包,在PropertyGroup标签中添加
true 方案二:添加System.Object(System.Runtime.dll),找到System.Runtime.dll,然后对其进行引用MetadataReference.CreateFromFile("/dlls/System.Runtime.dll")
本次的例子是基于官网的进行了补充
//得到的结果string result = "";//初始化 Natasha 编译组件及环境NatashaInitializer.Preheating();//创建编译单元,并指定程序集名AssemblyCSharpBuilder oop = new AssemblyCSharpBuilder("myAssembly");//编译单元使用从域管理分配出来的随机域oop.Domain = DomainManagement.Random();//增加代码到编译单元中oop.Add(@"namespace HelloWorld{ public class Test{ public Test(){ Name = null; } public string Name; public void setName(string name){Name=name;} public string getName(){ return ""你好!""+ Name; } } }");//获得Assemblyvar assembly = oop.GetAssembly();// 利用反射实例化var newInstance = assembly.CreateInstance("HelloWorld.Test");//判断实例化是否成功if (newInstance != null) { //获得setName方法 MethodInfo? setNamehod = newInstance.GetType().GetMethod("setName"); if (setNamehod != null) { //利用反射进行赋值 setNamehod.Invoke(newInstance, new object[] { "张三" }); } //获得getName方法 MethodInfo? getNameMethod = newInstance.GetType().GetMethod("getName"); if (getNameMethod != null) { // 获得getName的返回值 result = getNameMethod.Invoke(newInstance, null) as string; }}//打印Console.WriteLine($"{result}");
执行结果结果如下
第二个例子使用官方例子
//在 NDomain1 域内创建一个委托var func = NDelegate.CreateDomain("NDomain1").Func
("return \"Hello World!\";");result = func();func.DisposeDomain();//打印Console.WriteLine($"{result}"); 执行结果结果如下
关键词:
-
快看:零基础快速入门WebRTC:基本概念、关键技术、与WebSocket的区别等
本文主要分享了WebRTC的基本概念、关键技术术语(包括NAT、STUN、TURN、ICE、SDP和信令),着重讲解了We...
来源: -
【世界时快讯】Java集成工作流审批机制,多个项目实际运用优化版本(干货)
前言activiti工作流引擎项目,企业erp、oa、hr、crm等企事业办公系统轻松落地,一套完整并且实际运用在...
来源: 快看:零基础快速入门WebRTC:基本概念、关键技术、与WebSocket的区别等
【世界时快讯】Java集成工作流审批机制,多个项目实际运用优化版本(干货)
世界快播:Natasha入门(一)
环球观热点:恒生指数13日收涨0.13% 生物医药行业领涨
焦点报道:许昌市东城区:普法宣传进校园 精心护苗筑平安
【全球时快讯】NVIDIA最新调查:80%的RTX 40系显卡用户会启用光追和DLSS
【天天播资讯】侧透玻璃机箱!微星海皇戟AS台式机上新:i7+RTX 4070
世界新消息丨同跑硬件杀手《赛博朋克2077》 RTX 4080与RTX 4090有多大差距?
世界今日讯!Win掌机不用指头戳屏幕了!Win12有望加入“掌机模式”
世界微动态丨下周一!国内油价预计涨0.44元/升 或创今年最大涨幅
尼尔森IQ:中国消费市场回暖 绿色变革赋能品牌可持续增长
天天速读:MegEngine 使用小技巧:使用 Optimizer 优化参数
每日动态!图片压缩&视频截取
全球观速讯丨Mac | iOS | Windows:安装Stable diffusion教程
世界短讯!科创板收盘播报:科创50指数低开低走跌2.59% 软件服务及半导体股跌幅居前
世界热讯:简历上写QQ邮箱会掉分吗引热议 网友:邮箱也分三六九等?
全焦段光学覆盖!小米13 Ultra影像参数公布:1+3黄金组合
环球消息!4999元起 荣耀MagicBook 14 2023笔记本发布:5项世界第一
天天即时:优酷回应非会员遇3000多秒广告:bug已修复 是文案显示问题
iPhone 15 Pro固态按键设计临时改了!只因难度太大
天天最资讯丨动态代理与Spring AOP
在LINQPad中使用FreeSql查询数据库
minio分片上传
12函数进阶
环球快看点丨[Docker]Namespace与Cgroups
快看:本周最火AutoGPT!GitHub3.6万+标星:解决复杂任务全程无需人类插手
环球微速讯:性能升级 13代酷睿来了? 华为MateBook笔记本新品即将发布
曾力推每天睡4小时 张朝阳建议年轻人别睡懒觉不要熬夜
每日动态!李书福抢跑马斯克发小钢炮!冰箱彩电大沙发全标配:理想直呼内行
【环球热闻】售价高达15000元!宾得专为黑白摄影推出K-3 Mark III Monochrome
金色的草地课文朗读音频_金色的草地课文
焦点精选!论结构化、系统性的学习
【天天热闻】RocketMQ是是如何管理消费进度的?又是如何保证消息成功消费的?
【天天聚看点】C# 根据前台传入实体名称,动态查询数据
每日关注!电商流量分析怎么做?试试这款数据工具 DataLeap!
Intel突然杀死服务器整机业务!新CEO连砍十余刀挽救亏损
马保国直播带货现演“闪电五连鞭”:销量惨淡 网友只看不买
手把手教你如何免费Midjourney Adobe FireFly AI绘图—Window本地快速部署stable diffusion AI绘图及使用指南(小白
克里克森_克里克拉克
每日速递:日本部分地区出现大量黄沙:能见度不足10公里
环球热点!高颜值!关晓彤晒华为nova 11:本月发
每日资讯:开启影像光学新时代!小米13 Ultra搭载全焦段5000万像素徕卡四摄
真反向虚标!实测比亚迪秦PLUS EV冠军版:标610开出646.5
5.98万起真不贵!五菱缤果上市两周狂卖10000台:再成爆款
【3D建模工具】上海道宁与McNeel为您提供强大的专业3D造型软件
环球快资讯丨学系统集成项目管理工程师(中项)系列04c_项目管理一般知识(下)
【大兴调查研究】临夏税务:“把脉问诊”助企纾困
今日热闻!新款特斯拉Model 3实车首曝:大灯更精神、颜值再提升
焦点短讯!张艺谋:《满江红》票房让我很意外 20亿就是伟大胜利
观热点:美曾通报生物实验室感染病毒的小白鼠逃了:去年还发生实验猴逃窜
世界快看:5.58万起 五菱荣光新卡上市:2.0L动力、3.3米货厢
当前看点!微信推送8.0.35测试版:和Android 5.0说再见
华硕A52J笔记本最大存储空间是多少?华硕a52j笔记本参数
金立GN105手机怎么换屏幕?金立gn105手机参数配置
ATI HD4500是集成显卡吗?ATI HD4500参数配置
华硕y581c是什么系列?华硕y581c笔记本电脑配置
苹果iPhone7有几种颜色?苹果iphone7怎么截长图?
环球速递!《梦西游》4月14日合服维护公告
环球快消息!C#--TextBox的四种禁止编辑方法
热点评!4月22日,云数据库技术沙龙【杭州站】来了
用java做一个并发10W的网站,需要用到的技术有这些!
释放1英寸全部实力!小米13 Ultra支持可变光圈:重金打造
埃安Hyper GT摊牌了:比特斯拉贵 但你会选我
广东惠东发现“世界最神秘的鸟”:中国特产、比大熊猫还稀少
世界通讯!《名侦探柯南》优衣库联名T恤引争议 柯哀党PK新兰党
观焦点:小米平板6系列正式官宣:5000万摄像头 超强生产力工具
环球微速讯:093期杨光福彩3D预测奖号:定位直选参考
天天时讯:百度文心大模型API测试
世界通讯!浅析DNS Rebinding
Linux运维进阶之路
环球观点:美国通胀降温 油价随宽松预期下上行
天天日报丨男子要求抹零被拒与店员起争执 就为10元打女服务员:网友吐槽没必要
世界快资讯:打车去拉萨的超远订单显著增加 车费超1.3万 滴滴:希望大家理性下单
每日动态!曾是第一大股东 软银抛售阿里巴巴股份:快清空了
世界热资讯!剧版《哈利·波特》官宣 先导预告发布:JK罗琳监制 忠于原著的十年大剧
每日速递:和iPhone一样四边等宽!华为nova 11正面照泄露
天天报道:1、内网渗透基础知识
4月13日生意社二氯甲烷基准价为2607.50元/吨
【国际大宗商品早报】国际油价显著上涨超2% 基本金属全线走高
喊话北京打车太便宜应涨价!乘联会秘书长:燃油车用户纳税但未享受权益
世界速看:中老铁路首趟国际旅客列车发车:昆明当日通达万象 二等座470元
白玉兰奖《狂飙》张颂文呼声最高:国产电视剧质量、口碑爆发
有7/14nm光刻机国产芯片就能赶上来?全球半导体设备、材料核心已被全垄断
【读财报】房企3月融资:境内信用债发行规模环比翻倍 美元债发行回落
焦点滚动:银河证券:继续看好银行板块投资机会
每日动态!四大证券报精华摘要:4月13日
微头条丨高校围捕1.26米40斤“鳄雀鳝”:人为放生 长嘴如鳄鱼
兰博基尼推出插电混动超级跑车 60万美元迅速卖光
比亚迪汉、唐车主狂喜!今年内可OTA升级云辇系统 车型一览
焦点滚动:小米13 Ultra跑分出炉:第二代骁龙8 顶配16GB内存
天天时讯:俄罗斯国家空间站计划2027年开建:最新构型图正式公布
每日播报!信贷投放靠前发力为经济发展注入活力
比亚迪又放大招 直接对标奔驰
今日最新!403秒!我国人造太阳创造新的世界纪录:可控核聚变又近一步
世界滚动:校园内最美的舞蹈
四则运算练习&竞赛系统(结对编程)
世界滚动:[GIT]GIT之删除远程仓库中的目录或文件
神谷英树发文怒喷Switch:想把这垃圾砸碎!
世界快讯:10nm以下最强候选 中国半导体性单壁碳纳米管获突破
快看点丨被吐槽像绿皮火车!空姐飞机上推销商品吆喝40分钟 业内人士:不违规