您好,如果使用非基本的包,需要如下操作:
1.在配置文件 的ReportingWorker添加
- <ReportingWorker>
- <UserFunctionsReferences>
- <CSharp>
- <Assemblies>
- <sys:string>System.Collections.dll</sys:string>
- <sys:string>System.Linq.dll</sys:string>
- <sys:string>Newtonsoft.Json.dll</sys:string>
- </Assemblies>
- <Namespaces>
- <sys:string>System.Collections.Generic</sys:string>
- <sys:string>System.Linq</sys:string>
- <sys:string>Newtonsoft.Json</sys:string>
- </Namespaces>
- </CSharp>
- <VisualBasic>
- <Assemblies>
- <sys:string></sys:string>
- </Assemblies>
- <Namespaces>
- <sys:string></sys:string>
- </Namespaces>
- </VisualBasic>
- </UserFunctionsReferences>
- </ReportingWorker>
复制代码 dll和命名空间
2.将引用的包放在:
C:\Program Files\dotnet\shared\Microsoft.NETCore.App\8.**
3.在如下地址中配置: Wyn安装目录\ReportingWorker\appseting.json
- "UserFunctionsReferences": {
- "CSharp": {
- "Assemblies": [
- "System.Collections.dll",
- "System.Linq.dll",
- "Newtonsoft.Json.dll"
- ],
- "Namespaces": [
- "System.Collections.Generic",
- "System.Linq",
- "Newtonsoft.Json"
- ]
- },
- "VisualBasic": {
- "Assemblies": [],
- "Namespaces": [
- "System.Math",
- "System.Convert",
- "Microsoft.VisualBasic.Conversion",
- "Microsoft.VisualBasic.Interaction",
- "Microsoft.VisualBasic.Information",
- "Microsoft.VisualBasic.Constants",
- "Microsoft.VisualBasic.DateAndTime",
- "Microsoft.VisualBasic.Strings"
- ]
- }
- }
复制代码
CSharp的Assemblies和Namespaces添加dll和命名空间,即可使用其他的dll。
然后我这里简单写了一个:
- /// <function name="ParseJsonValue">
- /// <culture>
- /// <label>ParseJsonValue</label>
- /// <syntax>ParseJsonValue(string jsonString, string jsonPath)</syntax>
- /// <description>解析 JSON 字符串中指定 JSON Path 对应的值</description>
- /// <example>ParseJsonValue("{"a":1}", "$.a")</example>
- /// </culture>
- /// </function>
- public string ParseJsonValue(string jsonString, string jsonPath)
- {
- try
- {
- // 使用 Newtonsoft.Json.JsonConvert.DeserializeObject 解析 JSON 字符串
- var obj = Newtonsoft.Json.JsonConvert.DeserializeObject(jsonString);
- // 将解析后的对象转换为 JObject 以便使用 SelectToken 方法
- var jObj = obj as Newtonsoft.Json.Linq.JObject;
- // 使用 SelectToken 方法根据 JSON Path 获取对应的值
- var token = jObj.SelectToken(jsonPath);
- // 如果 token 不为空,返回其值的字符串表示;否则返回 null 或抛出异常,视需求而定
- return token?.ToString();
- }
- catch (Exception ex)
- {
- // 可选:记录错误信息或处理异常
- throw ex;
- }
- }
复制代码 引用的包也在上面,Newtonsoft.Json.dll
报表中使用:
{Code.ParseJsonValue("{'a':1}", "$.a")}
预览效果:
|