C# 如何将一个本地字符串作为变量传递到另一个字符串的中间。净碳#
在下面的示例中,如何使用qnaResult名称更改本地QNARESULTHERE.json文件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.
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文件中的什么地方的实际问题。