visual-studio - 用参数值替换硬编码的问题
问题描述
我的 BIML 文件中有这个结构:
myColumns = myFile.ReadLine().Replace("\"","").Split('|');
我想将其替换为:
myColumns = myFile.ReadLine().Replace("\"","").Split('<#=delimiter#>');
但显然这不起作用。不知何故syntaxhighlighting告诉我这不起作用.....
还:
string[] myFiles = Directory.GetFiles(path, "*.csv");
string[] myFiles = Directory.GetFiles(path, "*.<#=filetype#>");
当简单地使用
myColumns = myFile.ReadLine().Replace("\"","").Split('delimiter');
它告诉我Cannot implicitly convert type 'string' to 'char'
分隔符声明为string delimiter ="|"
将其更改为时,char delimiter ="|"
我得到完全相同的错误,但是在我声明分隔符的那一行.....
解决方案
如果我对您的理解正确,那么您文件的这一部分:
myColumns = myFile.ReadLine().Replace("\"","").Split('|');
将已经包含在代码块或单独的代码文件中,是吗?如果是这样,您不需要delmiter
使用另一个代码块来参数化,而只需引用该变量,假设您已经在某处声明了它:
<#
...
char delimiter = '|';
...
var myColumns = myFile.ReadLine().Replace("\"","").Split(delimiter);
...
#>
作为对您的评论的回应,在您的 Biml 文件中使用此代码可能看起来像这样?
...
<Tables>
<Table Name="TableName" etc>
<Columns>
<# // This is the start of a Code Block
// We can define some C# data structures
char delimiter = '|';
var myColumns = myFile.ReadLine().Replace("\"","").Split(delimiter);
// Then start a loop which will generate some Biml nodes
foreach(string col in myColumns)
{
// Note that the foreach loop is left open despite closing the code block on the next line.
// This means the following Biml is looped over until the foreach ends.
#>
<Column Name="<#=col#>" etc />
<# // We can then start another code block which carries on from the last one
} // This closes the foreach loop defined earlier
#>
</Columns>
</Table>
</Tables>
...
您可以在此示例中看到 C# 代码是如何包含在其中的<#
,并且#>
在其他任何地方都使用原始 Biml 进行标记。<#=
和标记的使用#>
是引用先前定义的 C# 变量的语法快捷方式。这些显然只有当您在文件的 Biml 部分中而不是在代码块中时才需要。
推荐阅读
- c# - 无法连接到服务器“xxx”但在 Visual Studio Start 中工作
- google-analytics - 如何知道部门访问了哪些页面
- rust - 如何共享 Arc
>? - javascript - 我的 jquery 代码在 ejs 模板中不起作用
- javascript - 如何在提要html中附加评论使用jquery
- sql - Sequelize - 在种子后重置自动增量:撤消:全部
- django - ufw 禁止 docker 容器连接到 postgres
- python - 使用 python 初学者级别的网页抓取
- android - 重载分辨率歧义。所有这些功能都匹配。在毕加索(入)功能
- python - 在python中将值从列表添加到字典