作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在重构 Cake 构建脚本,并决定引入一个类来保存一些经常传递和/或存在于全局范围内的build设置。
一些设置来自参数,并使用 Argument<T>(string name, string defaultValue)
设置句法。
我想创建这样的东西:
var context = BuildContext.FromArguments();
ICakeContext
的方法。可能继承自
CakeContext
因此可以调用它的所有(扩展)方法,但是一旦你定义了一个类,它就会变成一个嵌套类,不再能够访问像
Argument<T>(name, defaultValue)
这样的好 helper 。 .
ICakeContext.Current
或者直接通过
this
如
BuildContext.FromArguments(this)
或类似的东西。
this
不允许在 Cake 脚本的那个级别(不知道为什么,顶级是静态方法?
ICakeContext
的引用?
最佳答案
原因this
不行,是因为Roslyn实现脚本的方式,没有this
的概念在脚本的外部范围内。
您可以通过几种不同的方式访问上下文。
来自 Task
:
Task("MyTask")
.Does(ctx =>
{
BuildContext.FromArguments(ctx);
});
Setup
/Teardown
:
Setup(ctx =>
{
BuildContext.FromArguments(ctx);
});
Teardown(ctx =>
{
BuildContext.FromArguments(ctx);
});
TaskSetup
/TaskTeardown
:
TaskSetup(ctx =>
{
BuildContext.FromArguments(ctx);
});
TaskTeardown(ctx =>
{
BuildContext.FromArguments(ctx);
});
#load "somefile.csx"
BuildContext.FromArguments(Context);
关于cakebuild - 我可以在我的 Cake 构建脚本中获得对当前 `ICakeContext` 的引用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47968448/
我正在重构 Cake 构建脚本,并决定引入一个类来保存一些经常传递和/或存在于全局范围内的build设置。 一些设置来自参数,并使用 Argument(string name, string defa
我是一名优秀的程序员,十分优秀!