我知道如何通过
我该如何使用共享代码而不使其嵌套在函数的后编译类中?
#load
包含其他的 .csx
文件。然而,扩展方法必须在顶级类中定义,而 #load
嵌套了这个类,所以它不是顶级的,函数会抛出编译错误。我该如何使用共享代码而不使其嵌套在函数的后编译类中?
#load
包含其他的 .csx
文件。然而,扩展方法必须在顶级类中定义,而 #load
嵌套了这个类,所以它不是顶级的,函数会抛出编译错误。#load "extensions.csx"
public static void Run(TimerInfo timer, TraceWriter log)
{
log.Info("test".MyToUpperExtension());
}
以及 extensions.csx
static string MyToUpperExtension(this string str)
{
return str.ToUpper();
}
static string MyToLowerExtension(this string str)
{
return str.ToLower();
}
正如您所看到的,常规扩展方法和扩展属性的唯一区别在于您不需要自己将它们包装在静态类中。
如果您需要引用私有程序集,您可以将程序集文件上传到相对于函数的bin文件夹中,并使用文件名进行引用(例如 #r "MyAssembly.dll")。有关如何将文件上传到函数文件夹的信息,请参见以下有关包管理的部分。
.
.csx
文件中定义了一个静态类。我可以将其包含进来,但它无法编译,因为该类被嵌套了。 - Deane