You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何抽象.csx文件中重复的using与#r语句以降低代码冗余

统一管理CSX文件重复引用与导入的解决方案

方案1:仅需1行引入代码

你可以创建独立的公共CSX文件存储所有重复的#r引用与using语句,例如命名为CommonReferences.csx,内容示例如下:

// 所有公共包引用
#r "nuget: Newtonsoft.Json, 13.0.3"
#r "nuget: Dapper, 2.0.151"
#r "./localLibs/CustomUtils.dll"

// 所有公共命名空间导入
using System;
using System.Collections.Generic;
using System.Linq;
using Newtonsoft.Json;
using Dapper;
using CustomUtils;

之后所有业务CSX文件的顶部仅需添加1行加载指令即可复用所有公共配置:
#load "CommonReferences.csx"

注:路径可按需写相对路径或绝对路径,相对路径以当前业务CSX文件所在位置为基准。#load指令会自动将公共文件内的所有引用、导入甚至全局函数注入到当前文件上下文,效果和直接写在当前文件完全一致。

方案2:零额外代码实现无重复

如果使用dotnet script运行CSX文件,可以通过运行参数或目录配置实现业务文件完全不用加引入语句:

  • 临时指定公共文件:运行时添加--load参数即可自动注入公共引用,命令示例:dotnet script myScript.csx --load CommonReferences.csx
  • 全局自动加载:在业务CSX所在目录创建.dotnetscript/init.csx文件,将所有公共引用与导入写入该文件,当前目录及子目录下的所有CSX运行时会自动加载该文件的内容,业务文件无需添加任何引入相关代码。

注意事项

  • 公共文件内的Nuget引用会在首次加载时自动还原,和直接写在业务文件中逻辑完全一致
  • 若使用VS Code等IDE编辑CSX,可在工作区配置中将公共CSX加入解析范围,避免IDE误报找不到命名空间的错误
  • 公共文件还可以存放全局复用的常量、通用工具函数,进一步降低业务代码的重复率

内容的提问来源于stack exchange,提问作者Kezin99

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 22:06:06