使用Visual Studio开发C#函数
新增json序列化和反序列化接口,并提供HC.Serverless.Function.Common.JsonSerializer.dll 。
提供的接口如下:
T Deserialize<T>(Stream ins):反序列化值传递到Function处理程序的对象中。
Stream Serialize<T>(T value):序列化值传递到返回的响应负载中。
本文以Visual Studio 2022新建一个.NET Core 6.0的“ClassLibrary”工程为例,其他运行时版本方法类似。
步骤一:构建项目
步骤二:打包代码
本例所用示例代码如下:
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 |
using HC.Serverless.Function.Common; using System; using System.IO; namespace ClassLibrary2 { public class Class1 { public Stream ContextHandlerSerializer(Stream input, IFunctionContext context) { var logger = context.Logger; logger.Logf("CSharp runtime test(v1.0.2)"); JsonSerializer test = new JsonSerializer(); TestJson Testjson = test.Deserialize<TestJson>(input); if (Testjson != null) { logger.Logf("json Deserialize KetTest={0}", Testjson.KetTest); } return test.Serialize<TestJson>(Testjson); } public class TestJson { public string KetTest { get; set; }//定义序列化的类中的属性为KetTest } } } |
- 如图4所示,单击菜单栏的“生成 > 生成解决方案”,拷贝输出框中生成的dll文件的路径。
- 如图5所示,在本地该路径的文件夹中查看生成的文件。
- 在该文件夹中新建“ClassLibrary.runtimeconfig.json”文件并填入以下内容。完成后文件中共有7个文件。
{ "runtimeOptions": { "framework": { "name": "Microsoft.NETCore.App", "version": "6.0.0" } } }
- *.runtimeconfig.json文件的名称为程序集的名称。
- 文件内容中的version为项目属性中的目标框架的版本号。
- 将该文件夹中的文件打包为zip格式压缩包。请注意不要将整个文件夹进行打包,需确保压缩包解压后直接出现7个文件。