首页 > 解决方案 > VB.NET 中的插值

问题描述

我需要使用 VB.NET 对字符串进行签名。在 C# 中,语法为:

string stringToSign = $"{method}\n\n\n{request.ContentLength}\n\n{request.ContentType}\n\n\n\n\n\n\n{headerResource}\n{urlResource}";
string signature = Convert.ToBase64String(hmac.ComputeHash(Encoding.UTF8.GetBytes(stringToSign )));

$VB.NET 中是不允许的。当我在 VB.NET 中尝试相同时,校验和是不同的。我想问题是\n,因为当这些被删除时,总和匹配。我试图通过在( )\之前添加一个额外的来逃避反斜杠。\n\\n

我已经搜索但未能找到一个好的解决方案。有任何想法吗?

标签: c#vb.netstring-interpolation

解决方案


如果您的问题与 VB.NET 插值有关,您可以$""在 VB.Net 中使用替换\n{vbLf},如下例所示

Dim stringToSign As String = $"{method}{vbLf}{vbLf}{vbLf}{request.ContentLength}{vbLf}{vbLf}{request.ContentType}{vbLf}{vbLf}{vbLf}{vbLf}{vbLf}{vbLf}{vbLf}{headerResource}{vbLf}{urlResource}"

如果您的问题与ComputeHash()其他问题有关,您必须更改问题的标题!


推荐阅读