Я не уверен, если это возможно.
Я бы предложил использовать переменную окружения:
var mySiteVariable = Environment.GetEnvironmentVariable("MySiteVariable");
config
.SetBasePath(env.ContentRootPath)
.AddJsonFile("appsettings.json", optional: false, reloadOnChange: true)
.AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: false, reloadOnChange: true)
.AddJsonFile($"appsettings.{mySiteVariable}.json", optional: true, reloadOnChange: true)
.AddEnvironmentVariables();
ОБНОВЛЕНИЕ:
Если вы не хотите использовать другой файл json, вы можете использовать AddInMemoryCollection
.Конфиги, добавленные позже в цепочке, будут перезаписывать переменные из конфигов ранее в цепочке.
config.SetBasePath(env.ContentRootPath)
.AddJsonFile("appsettings.json", optional: false, reloadOnChange: true)
.AddInMemoryCollection(new Dictionary<string, string>()
{
{"MyConfigVariable", "overwrite with this value"}
});
Не существует встроенного способа сделать то, что вы хотите.Вы всегда можете прочитать и проанализировать файл json самостоятельно, если действительно хотите.