Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
The following code shows how to configure native pipeline components using the IPersistPropertyBag interface.
[ComponentCategory(CategoryTypes.CATID_PipelineComponent)]
[ComponentCategory(CategoryTypes.CATID_Any)]
public class PipelineComponent :
IBaseComponent,
Microsoft.BizTalk.Component.Interop.IComponent,
Microsoft.BizTalk.Component.Interop.IPersistPropertyBag,
IComponentUI
{
private string prependData = null;
public string PrependData
{
get { return prependData; }
set { prependData = value;}
}
/// <summary>
/// IPersistPropertyBag.Load - Loads configuration property for component.
/// </summary>
/// <param name="pb">Configuration property bag.</param>
/// <param name="errlog">Error status (not used in this code).</param>
public void Load(Microsoft.BizTalk.Component.Interop.IPropertyBag pb, Int32 errlog)
{
val = (string)ReadPropertyBag(pb, "PrependData");
if (val != null) prependData = val;
}
/// <summary>
/// IPersistPropertyBag.Save - Saves the current component configuration into the property bag.
/// </summary>
/// <param name="pb">Configuration property bag.</param>
/// <param name="fClearDirty">Not used.</param>
/// <param name="fSaveAllProperties">Not used.</param>
public void Save(Microsoft.BizTalk.Component.Interop.IPropertyBag pb, Boolean fClearDirty, Boolean fSaveAllProperties)
{
val = (object)prependData;
WritePropertyBag(pb, "PrependData", val);
}
/// <summary>
/// Reads property value from property bag.
/// </summary>
/// <param name="pb">Property bag.</param>
/// <param name="propName">Name of property.</param>
/// <returns>Value of the property.</returns>
private static object ReadPropertyBag(Microsoft.BizTalk.Component.Interop.IPropertyBag pb, string propName)
{
object val = null;
try
{
pb.Read(propName,out val,0);
}
catch(ArgumentException)
{
return val;
}
catch(Exception ex)
{
throw new ApplicationException( ex.Message);
}
return val;
}
/// <summary>
/// Writes property values into a property bag.
/// </summary>
/// <param name="pb">Property bag.</param>
/// <param name="propName">Name of property.</param>
/// <param name="val">Value of property.</param>
private static void WritePropertyBag(Microsoft.BizTalk.Component.Interop.IPropertyBag pb, string propName, object val)
{
try
{
pb.Write(propName, ref val);
}
catch(Exception ex)
{
throw new ApplicationException( ex.Message);
}
}
}