更新时间:2025-08-14 gmt 08:00
使用visual studio开发c#函数-j9九游会登录
新增json序列化和反序列化接口,并提供hc.serverless.function.common.jsonserializer.dll 。
提供的接口如下:
t deserialize
stream serialize
本文以visual studio 2022新建一个.net core 6.0的“classlibrary”工程为例,其他运行时版本方法类似。
步骤一:构建项目
- 在visual studio中选择“创建新项目”,如图1所示选择“类库”,单击“下一步”,选择框架为“.net 6.0”创建项目。
图1 新建项目
- 如图2所示,选择j9九游会登录的解决方案资源管理器中“classlibrary”工程,单击鼠标右键,单击“添加项目引用”。
图2 添加引用
- 选择“浏览”,单击“浏览(b) ”,选择下载的中的三个库进行引用,单击“确定”。
dll文件中一共有三个库:hc.serverless.function.common.dll、hc.serverless.function.common.jsonserializer.dll、newtonsoft.json.dll。
- 引用成功后界面如图3所示。
图3 完成引用
步骤二:打包代码
本例所用示例代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
usinghc.serverless.function.common; usingsystem; usingsystem.io; namespaceclasslibrary2 { publicclassclass1 { publicstreamcontexthandlerserializer(streaminput,ifunctioncontextcontext) { varlogger=context.logger; logger.logf("csharp runtime test(v1.0.2)"); jsonserializertest=newjsonserializer(); testjsontestjson=test.deserialize<testjson>(input); if(testjson!=null) { logger.logf("json deserialize kettest={0}",testjson.kettest); } returntest.serialize<testjson>(testjson); } publicclasstestjson { publicstringkettest{get;set;}//定义序列化的类中的属性为kettest } } } |
- 如图4所示,单击菜单栏的“生成 > 生成j9九游会登录的解决方案”,拷贝输出框中生成的dll文件的路径。
图4 生成文件
- 如图5所示,在本地该路径的文件夹中查看生成的文件。
图5 文件
- 在该文件夹中新建“classlibrary.runtimeconfig.json”文件并填入以下内容。完成后文件中共有7个文件。
{ "runtimeoptions": { "framework": { "name": "microsoft.netcore.app", "version": "6.0.0" } } }
- *.runtimeconfig.json文件的名称为程序集的名称。
- 文件内容中的version为项目属性中的目标框架的版本号。
- 将该文件夹中的文件打包为zip格式压缩包。请注意不要将整个文件夹进行打包,需确保压缩包解压后直接出现7个文件。
步骤三:测试函数
- 在华为云functiongraph控制台新建一个c#(.net core 6.0)空白事件函数,如图6所示上传4打包完成的zip代码包。
图6 上传代码包
- 如图7所示选择“设置 > 常规设置”,将函数执行入口配置为"classlibrary2::classlibrary2.class1::contexthandlerserializer",单击“保存”。
图7 配置函数执行入口
- 回到“代码”页签,单击“测试”配置测试事件。如图8所示,将key修改为“kettest”即可识别出对应的value。
图8 配置测试事件
kettest:定义序列化的类中的属性为kettest.
- 单击“测试”,查看测试执行结果。
图9 查看执行结果
相关文档
意见反馈
文档内容是否对您有帮助?
提交成功!非常感谢您的反馈,我们会继续努力做到更好!
您可在查看反馈及问题处理状态。
系统繁忙,请稍后重试
如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨