2
我在嘗試在工作流基礎4.0中附加自定義跟蹤參與者時遇到問題。我有一個從TrackingParticipant繼承的類,但我看不到任何其他方式將它附加到我的WorkflowServiceHost,而不是像通過下面的SDK示例(在system.servicemodel元素中)演示的大量雜亂的app.config條目。當我只想讓一個簡單的自定義跟蹤參與者來聽我的CustomTrackingRecord.Data.Add(key,value)調用時,此選項似乎需要大量額外的開銷和類來創建。通過工作流基礎4.0中的代碼註冊自定義跟蹤參與者
public class CustomTracking : TrackingParticipant
{
protected override void Track(TrackingRecord record, TimeSpan timeout)
{
CustomTrackingRecord innerRecord = (CustomTrackingRecord)record;
var workflowInstanceId = innerRecord.InstanceId;
Console.WriteLine("Track called for workflow '{0}'", workflowInstanceId);
}
}
如何通過代碼(而不是像下面的配置)將我的上述自定義跟蹤參與者註冊到workflowServiceHost實例?
<extensions>
<behaviorExtensions>
<add name="historyFileTracking" type="Microsoft.Samples.HistoryFileTrackingExtensionElement, HiringRequestProcessDefinition, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
</behaviorExtensions>
</extensions>
<behaviors>
<serviceBehaviors>
<behavior>
<historyFileTracking profileName="RequestStoryTracking" path="..\..\..\Data\RequestHistory\"/>
</behavior>
</serviceBehaviors>
</behaviors>
<tracking>
<profiles>
<trackingProfile name="RequestStoryTracking">
<workflow activityDefinitionId="*">
<customTrackingQueries>
<customTrackingQuery name="*" activityName="*" />
</customTrackingQueries>
</workflow>
</trackingProfile>
</profiles>
</tracking>