使用Visual Studio
新增json序列化和反序列化接口,并提供HC.Serverless.Function.Common.JsonSerializer.dll 。
提供的接口如下:
T Deserialize<T>(Stream ins):反序列化值传递到Function处理程序的对象中。
Stream Serialize<T>(T value):序列化值传递到返回的响应负载中。
本例以Visual Studio 2017新建一个.NET Core2.0的“test”工程,.NET Core2.1、.NET Core3.1、C#(.NET Core 6.0,当前仅支持华北-乌兰察布二零二、华北-乌兰察布二零一、拉美-墨西哥城二)类似。
新建项目
添加引用
- 选择解决方案资源管理器中“test”工程,单击鼠标右键,选择“添加引用”,把下载的dll文件引用进来。如图4所示。
所引用的dll下载后放在一个lib文件中,一共有三个库:HC.Serverless.Function.Common.dll、HC.Serverless.Function.Common.JsonSerializer.dll、Newtonsoft.Json.dll。
- 选择“浏览”,单击“浏览(B) ”,把HC.Serverless.Function.Common.dll和HC.Serverless.Function.Common.JsonSerializer.dll引用进来,单击“确定”。如图5所示。
- 引用成功后界面如图6所示。
打包代码
本例所用示例代码如下:
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 test { 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 } } } |
- 右击“test”工程,选择“生成”,如图7所示。
- 拷贝生成dll文件的路径“C:\Users\xxx\source\repos\test\test\bin\Release\netcoreapp2.0\”,如图8所示。
该路径下的文件如图9所示。
- 在该路径新建“test.runtimeconfig.json”文件,如图10所示。
文件内容如下:
{ "runtimeOptions": { "framework": { "name": "Microsoft.NETCore.App", "version": "2.0.0" } } }
- *.runtimeconfig.json文件的名称为程序集的名称。
- 文件内容中的version为项目属性中的目标框架的版本号,2.0则为2.0.0 ,2.1则为2.1.0。
- 将文件打包为netcoreapp2.0.zip压缩包。
压缩包文件名称可随意,但是一定为.zip格式。