0

在 TFS DefaultTemplate.11.1.xaml 构建过程模板中,有很多属性的值都用方括号括起来[],所以一个标签的形式是

<tagName attributeName="[attributeValue]">

其中tagNameattributeNameattributeValue是文本字符串。

我找不到此值语法的任何文档。从模板来看,它似乎导致 XAML 处理器将文本评估为表达式。这在某处有解释吗?

4

2 回答 2

1

我相信 XAML 中的方括号确实表示值表达式。我仍然不确定究竟是如何支持或强制执行这种定义的。可能性包括:

-XAML 语法;我认为这是最有可能的答案。

-转换器实现某处,它在解析期间检测值何时以方括号开头和结尾,并在处理期间评估其中的内容;我认为这是第二个最有可能的答案。

- 有可能方括号实际上不是特殊字符并且作为标识符的一部分是有效的,值的评估是通过其他一些尚不清楚的机制执行的,并且方括号仅按照约定存在,也许是为了表明该值不是文字,而是要评估的表达式。我认为这是一个不太可能的答案。

支持研究:

“在 WF 设计器中创建的表达式使用方括号进行序列化,方括号是 VisualBasicValue 或 VisualBasicReference 的简写”

“手动编辑工作流 XAML 文件以将 Number 属性的值更改为 [1+2](方括号表示表达式)”

“表达式是文本值或绑定到参数或属性的 Visual Basic 代码。它们包含值元素(例如变量、常量、文本、属性),这些元素与操作相结合以产生新值。表达式是使用 VB.NET 语法编写的,即使该应用程序位于使用 C# 的程序中。”

“设计人员生成的工作流保存在 XAML 中,其中表达式显示在方括号中。”

上面的最后一个引用是我发现的唯一官方文档,它以任何方式将表达式周围的方括号提到为 XAML 属性值,但这仍然没有说明设计者是否只是任意地这样做并且没有调用任何特殊语法,或者如果表达式根据官方 XAML 规范,必须出现在方括号中,因此设计者必须这样做。

于 2013-03-22T16:21:16.093 回答
0

它是之前在您的 XAML 中设置的属性,例如:<x:Property Name="BuildNumberFormat" Type="InArgument(x:String)" />如果您在 VS 2012 中打开构建过程模板,您可以使用Workflow.

于 2013-03-22T14:29:07.613 回答