用于获取控制台、Web 应用程序和 Service Fabric 微服务的配置参数的共享函数
Shared function to get configuration parameter for console, web app and Service Fabric microservice
我想要一个共享函数,returns一个参数的应用设置:
public static string GetAppSettings(string key)
{
string sfAppName = Environment.GetEnvironmentVariable("Fabric_ApplicationName");
if (string.IsNullOrEmpty(sfAppName)) // we are NOT in SF
{
return ConfigurationManager.AppSettings[key];
}
else
{
ConfigurationPackage configurationPackage = FabricRuntime.GetActivationContext().GetConfigurationPackageObject("Config");
return configurationPackage.Settings.Sections["appSettings"].Parameters[key].Value;
}
}
因此,如果在标准网络应用程序中调用代码为 运行,则此函数从 appSettings.config 获取参数,如果调用代码为 [=,则从 Local.1Node.xml 获取参数24=] 作为 Service Fabric 微服务。
当我将此函数放在微服务之外时 "folder"(在共享项目中)我无法导入
using System.Fabric;
有办法做到这一点吗?这是一个好习惯吗?
当然可以,在您的共享项目中,添加对 Microsoft.ServiceFabric Nuget 包的引用。
Install-Package Microsoft.ServiceFabric
要么
dotnet add package Microsoft.ServiceFabric
我想要一个共享函数,returns一个参数的应用设置:
public static string GetAppSettings(string key)
{
string sfAppName = Environment.GetEnvironmentVariable("Fabric_ApplicationName");
if (string.IsNullOrEmpty(sfAppName)) // we are NOT in SF
{
return ConfigurationManager.AppSettings[key];
}
else
{
ConfigurationPackage configurationPackage = FabricRuntime.GetActivationContext().GetConfigurationPackageObject("Config");
return configurationPackage.Settings.Sections["appSettings"].Parameters[key].Value;
}
}
因此,如果在标准网络应用程序中调用代码为 运行,则此函数从 appSettings.config 获取参数,如果调用代码为 [=,则从 Local.1Node.xml 获取参数24=] 作为 Service Fabric 微服务。
当我将此函数放在微服务之外时 "folder"(在共享项目中)我无法导入
using System.Fabric;
有办法做到这一点吗?这是一个好习惯吗?
当然可以,在您的共享项目中,添加对 Microsoft.ServiceFabric Nuget 包的引用。
Install-Package Microsoft.ServiceFabric
要么
dotnet add package Microsoft.ServiceFabric