蛋糕是C#,所以你可以像在普通的C#中一样创建类和方法。
例如,在一个蛋糕文件中声明一个类:
public class MyClass
{
public void MyMethod()
{
}
public static void MyStaticMethod()
{
}
}
然后在脚本中使用它,例如:
var myClass = new MyClass();
// Call instance method
myClass.MyMethod();
//Call static method
MyClass.MyStaticMethod();
Cake DSL基于Roslyn脚本,因此存在一些差异,代码本质上已经在类型中,因此您可以声明一个没有类的方法以供重用
public void MyMethod()
{
}
然后它可以像全局方法一样被调用。
MyMethod();
一些需要注意的问题:使用类会改变作用域,因此您将无法访问别名/上下文和全局方法。您可以通过将ICakeContext作为参数传递给类来解决这个问题。
一些需要注意的问题:使用类会改变作用域,因此您将无法访问别名/上下文和全局方法。您可以通过将ICakeContext作为参数传递给类来解决这个问题。
public class MyClass
{
ICakeContext Context { get; }
public MyClass(ICakeContext context)
{
Context = context;
}
public void MyMethod()
{
Context.Information("Hello");
}
}
然后像这样使用
// pass reference to Cake context
var myClass = new MyClass(Context)
// Call instance method which uses an Cake alias.
myClass.MyMethod()
你可以使用扩展方法,但不能在类中定义,例如:
你可以使用扩展方法,但是这些方法不能在类中声明,示例:
public static void MyMethod(this ICakeContext context, string message)
{
context.Information(message);
}
Context.MyMethod("Hello");