微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

C#中带有可变内容的字符串插值

可以将字符串的模板存储在变量中并使用插值吗?
var name = "Joe";
var template = "Hi {name}";

然后我想做一些事情:

var result = $template;

原因是我的模板将来自数据库.

解决方法

这可以使用动态编译按要求完成,例如通过 Microsoft.CodeAnalysis.CSharp.Scripting包.例如:
var name = "Joe";
var template = "Hi {name}";
var result = await csharpscript.EvaluateAsync<string>(
    "var name = \"" + name + "\"; " +
    "return $\"" + template + "\";");

请注意,这种方法很慢,您需要添加更多逻辑来处理字符串中引号(和注入攻击)的转义,但上述内容可作为概念验证.

原文地址:https://www.jb51.cc/csharp/91365.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐