直接从服务访问应用程序参数

Accessing application parameters directly from service

是否可以直接从您的 SF 服务访问 ApplicationManifest.xml 中定义的参数?

我知道您可以定义服务级别的参数并提供覆盖(如 所述),但这非常麻烦。如果您有多个服务访问相同的参数(例如连接字符串),那么将它定义在一个地方会容易得多,比如应用程序清单。

这是可能的,但并不容易。

  1. 获取清单 xml:
var fc = new FabricClient();         
var application = (await fc.QueryManager.GetApplicationListAsync(new Uri (Context.CodePackageActivationContext.ApplicationName))).Single();         
var applicationManifest = await fc.ApplicationManager.GetApplicationManifestAsync(application.ApplicationTypeName,
 application.ApplicationTypeVersion);
  1. 使用 xml 根据 XSD 模式反序列化对象。 C:\Program Files\Microsoft SDKs\Service Fabric\schemas\ServiceFabricServiceModel.xsd (ApplicationManifestType)

(抱歉格式化)