C# 将字符串变量转换为 FormattableString

C# Convert string variable to FormattableString

假设,在 C# 程序中,我的 app.config 中有以下几行:

<appSettings>
    <add key="FormattedString" value="{greeting}, {name}." />
</appSettings>

而且,在我的代码中,我按如下方式使用它:

    private void doStuff()
    {
        var toBeFormatted = ConfigurationManager.AppSettings["FormattedString"];
        string greeting = @"Hi There";
        string name = @"Bob";
    }

我想将 toBeFormatted 变量用作 FormattableString 以便能够通过字符串插值插入变量 - 类似于:

Console.WriteLine(toBeFormatted);

我已经尝试过诸如:

var toBeFormatted = $ConfigurationManager.AppSettings["FormattedString"];

Console.WriteLine($toBeFormatted);

但两者都导致错误。有没有办法让编译器知道 toBeFormatted 字符串应该用作 FormattableString?

好吧,以防万一,我建议采用以下简单的解决方案:

<appSettings>
   <add key="FormattedString" value="{0}, {1}." />
</appSettings>

然后在您的代码中:

Console.WriteLine(string.Format(toBeFormatted,greeting, name));