j9九游会登录/ 函数工作流 functiongraph/ 开发指南/ / / / 使用visual studio开发c#函数
更新时间:2025-08-14 gmt 08:00

使用visual studio开发c#函数-j9九游会登录

新增json序列化和反序列化接口,并提供hc.serverless.function.common.jsonserializer.dll 。

提供的接口如下:

t deserialize(stream ins):反序列化值传递到function处理程序的对象中。

stream serialize(t value):序列化值传递到返回的响应负载中。

本文以visual studio 2022新建一个.net core 6.0的“classlibrary”工程为例,其他运行时版本方法类似。

步骤一:构建项目

  1. 在visual studio中选择“创建新项目”,如图1所示选择“类库”,单击“下一步”,选择框架为“.net 6.0”创建项目。
    图1 新建项目
  2. 图2所示,选择j9九游会登录的解决方案资源管理器中“classlibrary”工程,单击鼠标右键,单击“添加项目引用”。
    图2 添加引用
  3. 选择“浏览”,单击“浏览(b) ”,选择下载的中的三个库进行引用,单击“确定”。

    dll文件中一共有三个库:hc.serverless.function.common.dll、hc.serverless.function.common.jsonserializer.dll、newtonsoft.json.dll。

  4. 引用成功后界面如图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
}
}
}
  1. 图4所示,单击菜单栏的“生成 > 生成j9九游会登录的解决方案”,拷贝输出框中生成的dll文件的路径。
    图4 生成文件
  2. 图5所示,在本地该路径的文件夹中查看生成的文件。
    图5 文件
  3. 在该文件夹中新建“classlibrary.runtimeconfig.json”文件并填入以下内容。完成后文件中共有7个文件。
    {
        "runtimeoptions": {
            "framework": {
                "name": "microsoft.netcore.app",
                "version": "6.0.0"
            }
        }
    }
    • *.runtimeconfig.json文件的名称为程序集的名称。
    • 文件内容中的version为项目属性中的目标框架的版本号。
  4. 将该文件夹中的文件打包为zip格式压缩包。请注意不要将整个文件夹进行打包,需确保压缩包解压后直接出现7个文件。

步骤三:测试函数

  1. 在华为云functiongraph控制台新建一个c#(.net core 6.0)空白事件函数,如图6所示上传4打包完成的zip代码包。
    图6 上传代码包
  2. 图7所示选择“设置 > 常规设置”,将函数执行入口配置为"classlibrary2::classlibrary2.class1::contexthandlerserializer",单击“保存”
    图7 配置函数执行入口
  3. 回到“代码”页签,单击“测试”配置测试事件。如图8所示,将key修改为“kettest”即可识别出对应的value。
    图8 配置测试事件

    kettest:定义序列化的类中的属性为kettest.

  4. 单击“测试”,查看测试执行结果。
    图9 查看执行结果

相关文档

网站地图