在 TFS DefaultTemplate.11.1.xaml 构建过程模板中,有很多属性的值都用方括号括起来[]
,所以一个标签的形式是
<tagName attributeName="[attributeValue]">
其中tagName
、attributeName
和attributeValue
是文本字符串。
我找不到此值语法的任何文档。从模板来看,它似乎导致 XAML 处理器将文本评估为表达式。这在某处有解释吗?
在 TFS DefaultTemplate.11.1.xaml 构建过程模板中,有很多属性的值都用方括号括起来[]
,所以一个标签的形式是
<tagName attributeName="[attributeValue]">
其中tagName
、attributeName
和attributeValue
是文本字符串。
我找不到此值语法的任何文档。从模板来看,它似乎导致 XAML 处理器将文本评估为表达式。这在某处有解释吗?
我相信 XAML 中的方括号确实表示值表达式。我仍然不确定究竟是如何支持或强制执行这种定义的。可能性包括:
-XAML 语法;我认为这是最有可能的答案。
-转换器实现某处,它在解析期间检测值何时以方括号开头和结尾,并在处理期间评估其中的内容;我认为这是第二个最有可能的答案。
- 有可能方括号实际上不是特殊字符并且作为标识符的一部分是有效的,值的评估是通过其他一些尚不清楚的机制执行的,并且方括号仅按照约定存在,也许是为了表明该值不是文字,而是要评估的表达式。我认为这是一个不太可能的答案。
支持研究:
“在 WF 设计器中创建的表达式使用方括号进行序列化,方括号是 VisualBasicValue 或 VisualBasicReference 的简写”
上面的最后一个引用是我发现的唯一官方文档,它以任何方式将表达式周围的方括号提到为 XAML 属性值,但这仍然没有说明设计者是否只是任意地这样做并且没有调用任何特殊语法,或者如果表达式根据官方 XAML 规范,必须出现在方括号中,因此设计者必须这样做。
它是之前在您的 XAML 中设置的属性,例如:<x:Property Name="BuildNumberFormat" Type="InArgument(x:String)" />
如果您在 VS 2012 中打开构建过程模板,您可以使用Workflow
.