我目前正在编写一个扩展,用我的-function替换正常。string.Format
FormatNamed
到目前为止我已经得到了这段代码,但是我想改变输入参数的方式
void Main()
{
string sql = "SELECT {fields} FROM {table} WHERE {query}"
.FormatNamed(new { fields = "test", table = "testTable", query = "1 = 1" });
Console.WriteLine(sql);
}
public static class StringExtensions
{
public static string FormatNamed(this string formatString, dynamic parameters)
{
var t = parameters.GetType();
var tmpVal = formatString;
foreach(var p in t.GetProperties())
{
tmpVal = tmpVal.Replace("{" + p.Name + "}", p.GetValue(parameters));
}
return tmpVal;
}
}
不是最漂亮的替代品,但它可以完成工作。
反正。我想改变,所以我可以用
.FormatName(field: "test", table: "testTable", query: "1 = 1");
有什么办法可以做到这一点吗?我试过用谷歌搜索动态命名参数,但没有很好的结果。