给定一个 Blob 存储连接字符串,例如:
DefaultEndpointsProtocol=https;AccountName=foo;AccountKey=bar;EndpointSuffix=core.windows.net
是否有可以转换/反序列化的已知 Microsoft 对象?我不想实际解析该字符串,但我需要从整个连接字符串中提取 AccountName 和 AccountKey,我将其作为字符串。
预防可能出现的“你为什么要这样做?”问题...我有一个现有的类,需要将连接字符串作为字符串注入(inject)。为了避免破坏性更改,我无法更改它。但我确实需要在此类中添加一些需要 AccountName 和 AccountKey 作为单独项目的方法。
谢谢!
最佳答案
如果安装 Microsoft.Azure.Storage.Common
,您可以通过编程方式提取连接字符串的多个位,而无需自己解析连接字符串。
例如(实际信息被混淆):
using System;
using Microsoft.Azure.Storage;
namespace dotnet_connectionstring
{
class Program
{
static void Main(string[] args)
{
CloudStorageAccount storageAccount = CloudStorageAccount.Parse("DefaultEndpointsProtocol=https;AccountName=youraccount;AccountKey=yourkey==;EndpointSuffix=core.windows.net");
Console.WriteLine(storageAccount.BlobEndpoint);
Console.WriteLine("---");
Console.WriteLine(storageAccount.BlobStorageUri);
Console.WriteLine("---");
Console.WriteLine(storageAccount.Credentials.AccountName);
Console.WriteLine("---");
Console.WriteLine(storageAccount.Credentials.ExportBase64EncodedKey());
}
}
}
这给出了类似的输出:
https://youraccount.blob.core.windows.net/ --- Primary = 'https://youraccount.blob.core.windows.net/'; Secondary = 'https://youraccount-secondary.blob.core.windows.net/' --- youraccount --- yourkey==
关于c# - 以编程方式从 Azure Blob 存储连接字符串中提取属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60998307/