2016-08-18 75 views
0

是否可以直接从SF服务访问在ApplicationManifest.xml中定义的参数?直接从服务访问应用程序参数

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

+0

微服务的整体思路是要独立。因此,在每个服务的几个地方都有相同的连接字符串是很自然的。 – cassandrad

+0

对公共事物使用相同的配置参数不会破坏它们的独立性,但会减轻维护。我正在配置弹性搜索监听器来收集日志,正如教程中所建议的那样,我需要为每个服务实现4个覆盖 - 为实现这样一个简单的目标而进行的大量工作... – filip

回答

2

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

  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); 
  • 使用该XML反序列化基于所述XSD架构的对象。 C:\ Program Files文件\微软的SDK \服务布料\ \模式ServiceFabricServiceModel.xsd(ApplicationManifestType)
  • (约格式化抱歉)

    +0

    但是,此机制不会使用特定于环境的覆盖ApplicationParameters文件夹,对吗? – filip

    +1

    application.ApplicationParameters have those – LoekD

    相关问题