将项目级参数分配给 BIMLScript 中的变量
Assigning a Project Level Parameter to a variable in BIMLScript
我正在尝试读取 bimlscript 中的 project.params 参数。我已经尝试过,据我所知是正确的语法 <# var env = @[$Project::Environment]#>
但我一直收到错误 "Keyword, identifier, or string expected after verbatim specifier: @"
有人可以告诉我正确的方法吗?非常感谢。
给定
的样本包 Biml
<Biml xmlns="http://schemas.varigence.com/biml.xsd">
<Packages>
<Package Name="so_59375738" >
<Parameters>
<Parameter Name="Environment" DataType="Int32">1</Parameter>
</Parameters>
</Package>
</Packages>
</Biml>
我们需要做的是访问包的参数集合来获取我们的参数,然后我们可以使用 .Value
属性 来获取初始化值。
另一件需要注意的事情是,我们必须在此处使用分层,因为访问创建包的同一层中的 RootNode 将不起作用。对于极富技术头脑的人来说,这里不需要显式层,因为上面的示例是静态 Biml,它始终是第 0 层,而动态 Biml aka BimlScript 将默认为第 1 层。但我倾向于在我的意图中明确
<#@ template tier="999" #>
<Biml xmlns="http://schemas.varigence.com/biml.xsd">
<#
foreach(AstPackageNode p in this.RootNode.Packages)
{
foreach(var pm in p.Parameters)
{
WriteLine(string.Format("<!-- {0}:{1}->{2} -->", p.Name, pm.Name, pm.Value));
}
}
// Explicit approach
WriteLine(string.Format("<!-- {0}:{1}->{2} -->", this.RootNode.Packages["so_59375738"], this.RootNode.Packages["so_59375738"].Parameters["Environment"].Name, this.RootNode.Packages["so_59375738"].Parameters["Environment"].Value));
#>
</Biml>
据推测,当构建包 (so_59375738) 时,我们知道参数 Environment
是从我们的元数据存储库中初始化的,所以在我看来,它会更干净回到存储库并从那里访问值。
除非这是为了识别、记录和返工现有产品,否则很明显您将无法访问原始元存储。
我正在尝试读取 bimlscript 中的 project.params 参数。我已经尝试过,据我所知是正确的语法 <# var env = @[$Project::Environment]#>
但我一直收到错误 "Keyword, identifier, or string expected after verbatim specifier: @"
有人可以告诉我正确的方法吗?非常感谢。
给定
的样本包 Biml<Biml xmlns="http://schemas.varigence.com/biml.xsd">
<Packages>
<Package Name="so_59375738" >
<Parameters>
<Parameter Name="Environment" DataType="Int32">1</Parameter>
</Parameters>
</Package>
</Packages>
</Biml>
我们需要做的是访问包的参数集合来获取我们的参数,然后我们可以使用 .Value
属性 来获取初始化值。
另一件需要注意的事情是,我们必须在此处使用分层,因为访问创建包的同一层中的 RootNode 将不起作用。对于极富技术头脑的人来说,这里不需要显式层,因为上面的示例是静态 Biml,它始终是第 0 层,而动态 Biml aka BimlScript 将默认为第 1 层。但我倾向于在我的意图中明确
<#@ template tier="999" #>
<Biml xmlns="http://schemas.varigence.com/biml.xsd">
<#
foreach(AstPackageNode p in this.RootNode.Packages)
{
foreach(var pm in p.Parameters)
{
WriteLine(string.Format("<!-- {0}:{1}->{2} -->", p.Name, pm.Name, pm.Value));
}
}
// Explicit approach
WriteLine(string.Format("<!-- {0}:{1}->{2} -->", this.RootNode.Packages["so_59375738"], this.RootNode.Packages["so_59375738"].Parameters["Environment"].Name, this.RootNode.Packages["so_59375738"].Parameters["Environment"].Value));
#>
</Biml>
据推测,当构建包 (so_59375738) 时,我们知道参数 Environment
是从我们的元数据存储库中初始化的,所以在我看来,它会更干净回到存储库并从那里访问值。
除非这是为了识别、记录和返工现有产品,否则很明显您将无法访问原始元存储。