如何将 BIML 变量分配给 BIMLScript 变量?

How to assign BIML variable to BIMLScript variable?

我有一个字符串类型的BIML变量如下

<Variable Name="data" Datatype="String" Length="100">hello-world-2018</Variable>

我想将上述BIML变量赋值给BIML文件中的C#变量或BIML Script变量。

如何获取BIML变量值并赋值给C#变量?

你会使用像

这样的东西
<Variable Name="data" Datatype="String" Length="100"><#= myBimlVariable #> </Variable> 

<#= 语法是 Biml 中的 shorthand ,用于将变量的当前值写入正在构建的 xml

我已经使用 tier 按要求的顺序编译 BIML 文件。

值较低的 BIML 首先编译。对于每一层,对象都被添加到 RootNode。较高层可以使用较低层的 Objects/Variables。

第一个文件 : declarebimlvariable.biml

<#@ template tier="0" #>
<Biml xmlns="http://schemas.varigence.com/biml.xsd">
    <Packages>
        <Package Name="Practice">
            <Variables>
                <Variable Name="data" Datatype="String" Length="100">hello-world-2018</Variable>
            </Variables>
        </Package>
    </Packages>
</Biml>

第二个文件 : getbimlvariableincsharp.biml

<#@ template tier="1" #>
<Biml xmlns="http://schemas.varigence.com/biml.xsd">
    <Packages>
        <Package Name="Practice2">
            <#
                var data = RootNode.Packages.First(x => x.Name == "Practice").Variables.First(x => x.Name == "data").Value;
            #>
            <Tasks>
                <Dataflow Name="<#= data#>">

                </Dataflow>
            </Tasks>
        </Package>
    </Packages>
</Biml>

通过使用 tiers 和 below line,我可以将 BIML 变量访问到 C# 变量中。

var data = RootNode.Packages.First(x => x.Name == "Practice").Variables.First(x => x.Name == "data").Value;