Ich muss konfigurierbare Werte in SSO speichern und sie zur Laufzeit in einer benutzerdefinierten Pipeline-Komponente abrufen
Jede Hilfe in dieser Angelegenheit...
Ich muss konfigurierbare Werte in SSO speichern und sie zur Laufzeit in einer benutzerdefinierten Pipeline-Komponente abrufen
Jede Hilfe in dieser Angelegenheit...
Hilfe zum Speichern von Werten in SSO finden Sie unter diese Stelle .
Um sie in einer Pipeline-Komponente abzurufen, können Sie eine Hilfsfunktion erstellen. Etwas wie dies wird funktionieren:
using System;
using System.Collections;
using System.Collections.Specialized;
using Microsoft.BizTalk.SSOClient.Interop;
/// <summary>
/// Contains helper methods for using SSO as a config store.
/// </summary>
public static class SSOConfigHelper
{
/// <summary>
/// Can be set to anything
/// </summary>
private static string idenifierGUID = "ConfigProperties";
/// <summary>
/// Read method helps get configuration data
/// </summary>
/// <param name="appName">The name of the affiliate application to represent the configuration container to access</param>
/// <param name="propName">The property name to read</param>
/// <returns>
/// The value of the property stored in the given affiliate application of this component.
/// </returns>
public static string Read(string appName, string propName)
{
try
{
SSOConfigStore ssoStore = new SSOConfigStore();
ConfigurationPropertyBag appMgmtBag = new ConfigurationPropertyBag();
((ISSOConfigStore)ssoStore).GetConfigInfo(appName, idenifierGUID, SSOFlag.SSO_FLAG_RUNTIME, (IPropertyBag)appMgmtBag);
object propertyValue = null;
appMgmtBag.Read(propName, out propertyValue, 0);
return (string)propertyValue;
}
catch (Exception e)
{
System.Diagnostics.Trace.WriteLine(e.Message);
throw;
}
}
}
// The code above uses this propertybag
public class ConfigurationPropertyBag : IPropertyBag
{
/// <summary>
/// The properties
/// </summary>
private HybridDictionary properties;
/// <summary>
/// Initializes a new instance of the ConfigurationPropertyBag class
/// </summary>
internal ConfigurationPropertyBag()
{
this.properties = new HybridDictionary();
}
#region IPropertyBag Members
/// <summary>
/// Implements IPropertyBag read
/// </summary>
/// <param name="propName">IPropertyBag propName</param>
/// <param name="ptrVar">IPropertyBag ptrVar</param>
/// <param name="errorLog">IPropertyBag errLog</param>
public void Read(string propName, out object ptrVar, int errorLog)
{
ptrVar = this.properties[propName];
}
/// <summary>
/// Implements IPropertyBag write
/// </summary>
/// <param name="propName">IPropertyBag propName</param>
/// <param name="ptrVar">IPropertyBag ptrVar</param>
public void Write(string propName, ref object ptrVar)
{
this.properties.Add(propName, ptrVar);
}
#endregion
/// <summary>
/// Searches for property key
/// </summary>
/// <param name="key">key of kv pair</param>
/// <returns>true if key found</returns>
public bool Contains(string key)
{
return this.properties.Contains(key);
}
/// <summary>
/// Removes property
/// </summary>
/// <param name="key">key of kv pair</param>
public void Remove(string key)
{
this.properties.Remove(key);
}
}
(Bitte bewerten Sie auch den verlinkten Beitrag, wenn er Ihnen hilft)
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.