Polyglot Notebooks超详细的命令用法

上一篇文章我们安装了基础环境,还教大家如何单独注册Python、R环境,这次咱们就开始写代码,看看 Polyglot Notebooks 是怎么跨语言协同开发的。

一、安装Nuget包

1、引用 Nuget 包

  • 使用 #r "nuget:<package name>[,<package version>]"命令
  • #r "nuget: Microsoft.SemanticKernel" 引入最新正式发布的包
  • #r "nuget: Microsoft.SemanticKernel, *-*" 引入最新预发布版本的包
  • #r "nuget: Microsoft.SemanticKernel, 1.11.2" 引入指定版本的包

2、指定 Nuget 源

二、定义类

在 Polyglot Notebooks 中定义类跟在 VS 中定义类很相似,而且在 Polyglot Notebooks 中还可以使用 Microsoft.DotNet.Interactive 提供的工具类。

三、引入外部类文件

如图所示创建 config 文件夹,并在其内部创建 EnumHelper 类,帮助类的内容我也一并在下边给出。注意:在 .NET Interactive 环境中不能定义命名空间!!!

cs 复制代码
using System.ComponentModel;
public class EnumHelper
{
    public static string GetDescription(Enum value)
    {
        var field = value.GetType().GetField(value.ToString());
        var attributes = (DescriptionAttribute[])field.GetCustomAttributes(typeof(DescriptionAttribute), false);
        return attributes.Length > 0 ? attributes[0].Description : value.ToString();
    }
}

四、变量共享

1、#!set命令进行变量共享

  • 引用C#代码块中的 msg 变量并赋值到新的 message变量中:#!set --name message --value @csharp:msg
  • 通过 @input 设置变量(要求用户输入变量值):#!set --name url --value @input:"Please enter a URL"
  • 直接为变量设置值:#!set --name age --value 19

2、#!share命令进行变量共享

  • 引用 value 中存储的同名变量:#!share someJson --from value
  • 引用语言代码块中的变量写法1:#!share --from csharp msg --as message
  • 引用语言代码块中的变量写法2:#!share msg --from csharp --as message(参数调换位置之后命令格式就跟 --from value 一样了,--as 是定义一个新变量来接收 msg 的值)
  • 注意:不能把变量共享给html、mermaid

五、通过#!value存储变量

六、通过#!value读取文件中定义的Json

七、通过#!time指令统计代码执行时间

八、发送HTTP请求

九、编程控制Polyglot

十、使用mermaid画图

Mermaid 是一个功能强大的基于 JavaScript 的绘图工具,它可以通过简单的文本语法创建各种类型的图表,如:流程图、序列图、甘特图、状态图、类图等。

十一、禁用Warning

cs 复制代码
using Microsoft.SemanticKernel.Plugins.Core;

#pragma warning disable SKEXP0050
typeof(MathPlugin).Display();
#pragma warning restore SKEXP0050

十二、交互式输入

cs 复制代码
//交互式输入
using PolyglotKernel = Microsoft.DotNet.Interactive.Kernel;

var input = await PolyglotKernel.GetInputAsync("Pick a number.");
input.Display();

var input2 = await PolyglotKernel.GetPasswordAsync("Pick a pwd.");

input2.Display();

十三、总结

本文中所展示的例子涵盖了日常生活中常见的用法,如果上述例子不能满足各位需求的话,可以去.NET Interactive官网看一下,地址如下:github官网。相信用熟了 Polyglot Notebook 会提高我们的开发效率,如果大家有其他实用的用法可以在评论区补充。

相关推荐
智云软件测评服务7 个月前
软件测评中心如何确保软件品质?需求分析与测试计划很关键
测试·软件·案例
bicijinlian7 个月前
多语言笔记系列:Polyglot Notebooks 中使用扩展库
jupyter·c#·polyglot·notebooks·c# jupyter·.net jupyter·.net notebook
bicijinlian8 个月前
多语言笔记系列:Polyglot Notebooks 中使用 xUnit 单元测试
c#·polyglot·notebooks·c# jupyter·.net jupyter·多语言笔记
久宇诗1 年前
前端之canvas实现电子签约完成线上签署功能
案例
阑梦清川1 年前
SpringMVC案例学习(二)--表白墙/图书管理系统1.0版本
spring·mvc·springboot·案例
此星光明1 年前
GEE 案例——利用哨兵-2 图像时间序列和谷歌地球引擎云计算自动绘制和监测香港海洋水质参数
javascript·云计算·应用·gee·案例·时序·水质
Cool-浩1 年前
Unity Vision Pro 保姆级开发教程-PolySpatial VisionOS Samples 示例场景
unity·游戏引擎·unity3d·案例·polyspatial·applevision pro·vision pro教程
cui_win2 年前
Golang并发编程-协程goroutine初体验
开发语言·golang·案例·goroutine·waitgroup
代码讲故事2 年前
67条tips实战案例渗透测试大佬的技巧总结
网络·安全·网络安全·渗透测试·渗透·攻击·案例