C# 如何将一个本地字符串作为变量传递到另一个字符串的中间。净碳#

C# 如何将一个本地字符串作为变量传递到另一个字符串的中间。净碳#,c#,.net,C#,.net,在下面的示例中,如何使用qnaResult名称更改本地QNARESULTHERE.json文件 public async Task ITSupportIntent(IDialogContext context, LuisResult result) { var qnaResult = itKB.GetAnswer(result.Query); if (qnaResult.StartsWith("CARD")) { var reply = context.

在下面的示例中,如何使用qnaResult名称更改本地QNARESULTHERE.json文件

public async Task ITSupportIntent(IDialogContext context, LuisResult result)
{
    var qnaResult = itKB.GetAnswer(result.Query);
    if (qnaResult.StartsWith("CARD"))
    { 
        var reply = context.MakeMessage();            
        try
        {
            string json = File.ReadAllText(HttpContext.Current.Request.MapPath("~\\AdaptiveCards\\QNARESULTHERE.json"));
对不起,这个问题到处都是。 背景:
我需要的实际变量是这里引用的QNA答案:

有点不清楚您试图从结果中得到什么值,但是假设
LuisResult
具有
FileName
属性,例如,您可以使用字符串插值(从C#7开始提供),如下所示:

string relativePath = $"~\\AdaptiveCards\\{result.FileName}.json";
您还可能发现
@
风格的逐字字符串语法在这里工作得更好,因为它意味着您不必逃避反斜杠:

string relativePath = $@"~\AdaptiveCards\{result.FileName}.json";
如果您使用的是旧版本的C#,还可以使用
string.Format
或普通的旧字符串连接:

string relativePath = string.Format(@"~\AdaptiveCards\{0}.json", result.FileName);
string relativePath = @"~\AdaptiveCards\" + result.FileName + ".json";
无论您选择哪一个,您当然会希望像以前一样传递结果值

string json = File.ReadAllText(HttpContext.Current.Request.MapPath(relativePath));

您可以像这样使用
string.Format()

string json = File.ReadAllText(HttpContext.Current.Request.MapPath(string.Format(@"~\AdaptiveCards\{0}.json", qnaResult));

上面假设
qnaResult
是一个包含所需文件名的字符串。如果是类实例,则使用包含文件名的相应属性。

以何种方式更改?用变量的内容完全替换
QNARESULTHERE
?您正在执行
reply=context.MakeMessage()
,然后执行
reply.Attachments.Add(新附件{…})
,这与更改JSON文件有关吗?如果不是的话,请考虑把它拿出来,这样我们就可以关注你想插入/替换JSON文件中的什么地方的实际问题。