我可以在运行时展开包含 C# 文字表达式的字符串吗

2024-01-12

如果我有一个包含 C# 字符串文字表达式的字符串,我可以在运行时“扩展”它吗

    public void TestEvaluateString()
    {
        string Dummy = EvalString( @"Contains \r\n new line");
        Debug.Assert(Dummy == "Contains \r\n new line");
    }

    private string EvalString(string input)
    {
        return "Contains \r\n new line";
    }

Like 我可以将 C# 字符串值转换为转义字符串文字吗 https://stackoverflow.com/questions/323640/can-i-convert-a-c-string-value-to-an-escaped-string-literal,但反过来呢?


与 Mikael 答案类似,但使用 CSharpCodeProvider:

    public static string ParseString(string txt)
    {
        var provider = new Microsoft.CSharp.CSharpCodeProvider();
        var prms = new System.CodeDom.Compiler.CompilerParameters();
        prms.GenerateExecutable = false;
        prms.GenerateInMemory = true;
        var results = provider.CompileAssemblyFromSource(prms, @"
namespace tmp
{
    public class tmpClass
    {
        public static string GetValue()
        {
             return " + "\"" + txt + "\"" + @";
        }
    }
}");
        System.Reflection.Assembly ass = results.CompiledAssembly;
        var method = ass.GetType("tmp.tmpClass").GetMethod("GetValue");
        return method.Invoke(null, null) as string;
    }

您最好使用通配符字典并在字符串中替换它们。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

我可以在运行时展开包含 C# 文字表达式的字符串吗 的相关文章

随机推荐

  • Uncrustify 折叠 多行函数调用

    我的函数调用如下所示 没有明显的原因 func a b c 有没有办法让 uncrustify 将函数折叠成一行 我已经尝试了两天了 没有断断续续的 我让它适用于函数声明 但我没有让它适用于函数调用 当我们这样做时 我也有如下所示的函数 f
  • 为什么是语句(j++);禁止?

    下面的代码是错误的 看一下关于ideone http ideone com vSoRsM public class Test public static void Main int j 5 j if we remove the and th
  • 地点选择器启动后关闭

    我无法从我的片段启动 Google 地点选择器 按照所有步骤和论坛查找根本原因 但无法解决我的问题 Links 谷歌地点选择器 https developers google com places android api placepick
  • 领域:谓词返回 LazyFilterCollection - 如何转换为 Results

    我正在过滤我的数据库查询NSPredicate直接在数据库上 但我想进一步过滤返回的值 Results
  • 在react-navigation createStackNavigator中使用mobx存储

    我想在react navigation中的createStackNavigator中使用Mobx存储变量 具体来说 我想使用商店动态更改初始路线 以便用户可以更改初始屏幕 这可能吗 一些东西在 const stack createStack
  • 使用现有的 InputStream 作为附件内容通过 javax.mail 发送电子邮件

    是否可以使用发送电子邮件javax mail并使用 现有的 InputStream对于电子邮件附件内容 目前我正在构建电子邮件消息 如下所示 final MimeMessage message new MimeMessage session
  • 将水印图像放置在其他图像上(C#、ASP.Net)

    如何将水印图像添 加到其他图像上 我可以将文本作为水印放置在图像上 但现在我想将图像而不是文本放在那里 我如何在 C 中执行此操作 再说一次 我有图像 X 我想将其用作水印符号 我希望这个符号出现在我的网站上显示的所有图像上 所以我将在图像
  • 将标准输入(读取主机)重定向到 Powershell 脚本

    这是一个示例 powershell 脚本 in read host prompt input write host in 这是一个示例 test txt 文件 hello 我们想通过piped从 powershell 输入 这是我尝试过的一
  • 高效地从字符串流中读取格式化行

    为了从文本文件加载大量顶点 我将整个文件加载到内存中 然后我想扫描每一行以查找三个浮点数 以下有效 但我想知道它是好还是浪费 std stringstream sstr sstr lt lt file rdbuf file is an if
  • C++ 函数参数采用指针的地址作为参数。这是如何使用的?它是做什么用的?

    想象一个这样的函数 function Human human Implementation 你能解释一下 到底是什么吗 它有什么用 与仅传递指针或引用有何不同 您能提供一个小的且具有解释性的样本吗 谢谢 它就像一个双指针 您通过引用传递指针
  • 多目标和多类预测

    我对机器学习和张量流比较陌生 我想训练数据 以便可以进行 2 个目标和多个类别的预测 这是可以做的事情吗 我能够为 1 个目标实现该算法 但不知道如何为第二个目标实现该算法 数据集示例 一年中的某一天温度流量能见度 316 8 1 4 28
  • browser.tabs.sendMessage(): 错误:接收端不存在

    我尝试运行上面给出的示例代码tabs sendMessage MDN 页面 https developer mozilla org en US Add ons WebExtensions API tabs sendMessage 所以我的代
  • 设置和获取交集的 MySQL 字符串

    我有一个错误投影的数据库 其中在文本列中设置了 ID 例如 1 2 5 10 我需要获得以相同方式设置的两列的交集 我不喜欢使用 PHP 或其他脚本语言来完成它 我也不喜欢 MySQL 自定义函数 有没有办法获得由逗号分隔符字符串给出的两个
  • Spring Data REST:如何在一次调用中使用 Id 列表检索多个项目?

    我可以通过以下调用从 Spring Data REST 检索一本书籍 获取 书 id 现在 如果我知道两本书的 Id 并且想一次检索它们呢 应该打电话什么 我尝试了以下操作 但它返回的书籍与指定的书籍不同 GET book ids id1
  • 删除 EF4 中的实体而不加载整个实体

    我正在使用实体框架 4 并有以下设置和问题 我在 MySql 中有一个表 其中包含元数据字段和 blob 字段 使用所描述的表拆分技术here http blogs microsoft co il blogs gilf archive 20
  • Twitter 分享按钮不转发自定义文本

    我正在开发一个网站 为每个特定产品提供 Twitter 共享选项 我按照 Twitter API 说明进行推文共享 除了自定义文本显示之外 一切正常 例如 我希望用户像这样发推文 你觉得怎么样 我应该买这个吗 http url etc ht
  • 调整未知大小的张量流图像的大小

    我有一个张量流 UNet 风格的网络 目前我指定输入和目标图像如下 self inputTensors tf placeholder tf float32 None opt inputHeight opt inputWidth opt in
  • 如何从多个 python-flask 子进程收集普罗米修斯指标?

    我有 main 函数 它生成两个单独的子进程 这两个子流程共享指标 如何共享两个流程的指标并保持更新 这是我的片段 以供更多理解 from multiprocessing import Process import prometheus c
  • 检查字符串是否包含前导字母

    如何检查我的字符串是否包含前导字母 在 C 中很容易 但我在 SQL 中这样做 有办法检查吗 如果是这样 我该如何删除它 前任 MyString A1234 更新后的字符串 1234 Use UPDATE YOUR TABLE SET yo
  • 我可以在运行时展开包含 C# 文字表达式的字符串吗

    如果我有一个包含 C 字符串文字表达式的字符串 我可以在运行时 扩展 它吗 public void TestEvaluateString string Dummy EvalString Contains r n new line Debug