2016-08-18 3 views
0

Können die in der ApplicationManifest.xml definierten Parameter direkt von Ihren SF-Diensten aus aufgerufen werden?Zugriff auf Anwendungsparameter direkt vom Dienst aus

Ich weiß, dass Sie Parameter auf Service-Ebene definieren und Überschreibungen bereitstellen können (wie beschrieben here), aber es ist sehr umständlich. Wenn Sie über mehrere Dienste verfügen, die auf denselben Parameter zugreifen (z. B. Verbindungszeichenfolge), wäre es viel einfacher, sie an einem einzigen Ort zu definieren, z. B. im App-Manifest.

+0

Die ganze Idee ist Microservices unabhängig zu sein. Daher ist es logisch, für jeden Dienst an mehreren Stellen dieselbe Verbindungszeichenfolge zu verwenden. – cassandrad

+0

Die Verwendung derselben Konfig-Parameter für Commons ändert nichts an ihrer Unabhängigkeit, würde aber die Wartung erleichtern. Ich konfiguriere elastische Such-Listener zum Sammeln von Protokollen, wie in Tutorials empfohlen, und ich muss 4 Überschreibungen für jeden Dienst implementieren - eine Menge Arbeit für solch ein einfaches Ziel ... – filip

Antwort

2

Es ist möglich, aber nicht einfach.

  1. das Manifest xml Get:
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. dass xml Verwenden Sie ein Objekt auf der Grundlage des XSD-Schema deserialisieren. C: \ Programme \ Microsoft SDKs \ Service Fabric \ schemas \ ServiceFabricServiceModel.xsd (ApplicationManifestType)

(traurig über die Formatierung)

+0

Aber dieser Mechanismus würde keine umgebungsspezifischen Überschreibungen von der verwenden ApplicationParameters-Ordner, richtig? – filip

+1

application.ApplicationParameters hat diese – LoekD

Verwandte Themen