C# StringTemplate以渲染器调用的格式使用对象属性
我正在引用模板中的c#资源字符串(使用$作为分隔符)。为此,我将对象“strings”作为参数之一传入模板,它是一个c#ResourceManager。formatString应该是所需资源的名称。这使我可以在我的模板中输入,例如:C# StringTemplate以渲染器调用的格式使用对象属性,c#,stringtemplate,stringtemplate-4,C#,Stringtemplate,Stringtemplate 4,我正在引用模板中的c#资源字符串(使用$作为分隔符)。为此,我将对象“strings”作为参数之一传入模板,它是一个c#ResourceManager。formatString应该是所需资源的名称。这使我可以在我的模板中输入,例如: <Name>$strings;format="ItemName"$</Name> $strings;format=“ItemName”$ 这个解决方案的唯一问题是,有时我希望从我的对象树中得到一些东西来帮助构建要查找的资源字符串的名称。例
<Name>$strings;format="ItemName"$</Name>
$strings;format=“ItemName”$
这个解决方案的唯一问题是,有时我希望从我的对象树中得到一些东西来帮助构建要查找的资源字符串的名称。例如,可以为枚举的本地化值提供通用查找:
<Type>$strings;format="ItemType$myItem.Type$"$</Type>
$strings;format=“ItemType$myItem.Type$”$
但是-当我尝试以这种方式调用呈现程序时,如果使用上述语法,myItem.Type不会解析为其值,而是直接作为字符串的一部分传递,因此我得到的是值“ItemType$myItem.Type$”而不是“ItemTypeBicycle”
但是,如果我没有在其周围加引号,例如:
<Type>$strings;format=ItemType$myItem.Type$$</Type>
$strings;格式=ItemType$myItem.Type$$
我得到一个编译时错误,这个“看起来不像expresson”
我是否还缺少另一种语法,或者您无法解析作为字符串传递的内容,如下图所示?我自己找到了一个解决方案-将此保留在此处,以防对其他人有所帮助。正确的语法是使用{…}转义,表示匿名模板。假定输出为字符串,并给出所需类型的格式$串;格式={ItemType$myItem.Type$}$