我正在使用 azure 托管身份,下面的代码生成所需的令牌来验证 api。我在用<PackageReference Include="Azure.Identity" Version="1.4.0" />
var credential = new ManagedIdentityCredential();
var accessToken = await credential.GetTokenAsync(new Azure.Core.TokenRequestContext(new[] {"my_scope"}));
return accessToken.Token;
Run Code Online (Sandbox Code Playgroud)
现在,在每个 api 调用中,我都调用上面的方法来获取令牌。问题是有什么方法可以缓存这个令牌并自动刷新?这是内置可用的东西吗?
我有类似下面的字符串值:
string str1 = "123-456-test";
string str1 = "123 - 456 - test-test";
string str1 = "123-REQ456-test";
string str1 = "123 - REQ456 - test-test";
Run Code Online (Sandbox Code Playgroud)
我需要在第二个破折号后立即从字符串中获取整个内容.
我试过了String.Split('-'),但没办法.我想我需要使用正则表达式,但我找不到正确的正则表达式.请建议.
我有一个C#dictionary,其中我有一个对应NAME的ID.
Dictionary<string, List<object>> dict = new Dictionary<string, List<object>>
{
{ "ID", new List<object> { "Id1", "Id2" } },
{ "NAME", new List<object> { "True", "False" } }
};
foreach (var id in dict["ID"])
{
Console.WriteLine(id);
//how to get corresponding "Name". For "Id1" = "True" and for "Id2" = "False"
}
Run Code Online (Sandbox Code Playgroud)
在上面的代码我循环ID,但如何获得相应的NAME?
我正在寻找一些最好的字符串操作方法.以下是已下达的输出,
[System/EventID=100 or System/EventID=108],交换字符串应该以#开头[并且结尾]加上必须删除or之间的额外内容?
try
{
string systemEvents = string.Empty;
var eventIds = "100,108".Split(',');
systemEvents += "[";
foreach (var eventId in eventIds)
{
systemEvents += "System/EventID=" + eventId + " or ";
}
var X = systemEvents.Remove(systemEvents.Length - 4).Trim();
var Y = X + "]";
}
catch (Exception ex)
{
throw ex;
}
Run Code Online (Sandbox Code Playgroud) 我有JSON文件,
[
{
"applicationConfig": {
"Name": "Name1",
"Site": "Site1"
},
"pathConfig": {
"SourcePath": "C:\\Temp\\Outgoing1",
"TargetPath": "C:\\Files"
},
"credentialConfig": {
"Username": "test1",
"password": "super1"
}
},
{
"applicationConfig": {
"Name": "Name2",
"Site": "Site2"
},
"pathConfig": {
"SourcePath": "C:\\Temp\\Outgoing2",
"TargetPath": "C:\\Files"
},
"credentialConfig": {
"Username": "test2",
"password": "super2"
}
}
]
Run Code Online (Sandbox Code Playgroud)
以下是C#类结构,
public class Configurations
{
public List<ApplicationConfig> ApplicationConfigs { get; set; }
public List<PathConfig> PathConfigs { get; set; }
public List<CredentialConfig> CredentialConfigs { get; set; }
}
public class ApplicationConfig
{ …Run Code Online (Sandbox Code Playgroud) 我有一个列表,Message以及他们的项目长度size,this.Size = JsonConvert.SerializeObject(Data).Length;.
public class Data
{
public int Id { get; set; }
public string Name { get; set; }
}
public class Message
{
public Data Data { get; set; }
public int Size { get; set; }
public Message(Data Data)
{
this.Data = Data;
this.Size = JsonConvert.SerializeObject(Data).Length;
}
}
Run Code Online (Sandbox Code Playgroud)
现在我有下面的数据集,我想将列表拆分成多个列表,每个列表应该只有50个字节(例如).
注 - 以 50为例,我的实际大小为1 MB,没有单个消息大于1MB
我试过下面,但是如何计算总大小并按照chunksize去分组,
.GroupBy(x => x.ItemSize / chunkSize)
Run Code Online (Sandbox Code Playgroud)
还是以不同的方式?
var messages = new List<Message>
{
new Message(new Data{ …Run Code Online (Sandbox Code Playgroud) public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseHttpSys(options =>
{
options.UrlPrefixes.Add("how to get url from appsettings");
});
webBuilder.UseStartup<Startup>();
})
//host as window service
.UseWindowsService();
}
Run Code Online (Sandbox Code Playgroud)
应用程序设置配置,
"HttpSysOptions": {
"UrlPrefix": "http://localhost:8099/"
}
Run Code Online (Sandbox Code Playgroud)
看起来可以使用hostingContext.Configuration,但在 内无法使用UseHttpSys,该怎么办?谢谢!
我知道如何在asp.net core中使用后台服务
public class WatchMan : BackgroundService
{
}
Run Code Online (Sandbox Code Playgroud)
我有一个点核心控制台应用程序,我想将其作为窗口服务运行,我可以BackgroundService在那里使用或类似的东西吗?
我有一个 asp.net core 应用程序“A”,它每 1 分钟在一个文件夹中生成文件。
应用程序“B”想要一个通知或文件详细信息我们生成的文件以及该文件的一些哈希信息。根据此通知,应用程序“B”想要处理这些文件。
我正在考虑一些发布/订阅机制,我想要非常轻量级的组件,其中应用程序“A”将发布文件相关信息,应用程序“B”将订阅和侦听。
“system.threading.channels”会解决这个问题吗?