在工作流基础4中通过代码注册自定义跟踪参与者 我在尝试在工作流基础4中附加自定义跟踪参与者时遇到了麻烦。我有一个从TrackingParticipant继承的类,但除了通过大量杂乱的app.config条目(如下面的SDK示例所示,在system.servicemodel元素中)之外,我看不到任何其他方式将其附加到WorkflowServiceHost。当我只想让一个简单的自定义跟踪参与者听我的CustomTrackingRecord.Data.Add(key,value)调用时,这个选项似乎需要大量额外的开销和创建类

在工作流基础4中通过代码注册自定义跟踪参与者 我在尝试在工作流基础4中附加自定义跟踪参与者时遇到了麻烦。我有一个从TrackingParticipant继承的类,但除了通过大量杂乱的app.config条目(如下面的SDK示例所示,在system.servicemodel元素中)之外,我看不到任何其他方式将其附加到WorkflowServiceHost。当我只想让一个简单的自定义跟踪参与者听我的CustomTrackingRecord.Data.Add(key,value)调用时,这个选项似乎需要大量额外的开销和创建类,workflow,workflow-foundation,workflow-foundation-4,Workflow,Workflow Foundation,Workflow Foundation 4,如何通过代码(而不是下面的配置)将上述自定义跟踪参与者注册到workflowServiceHost实例 <extensions> <behaviorExtensions> <add name="historyFileTracking" type="Microsoft.Samples.HistoryFileTrackingExtensionElement, HiringRequestProcessDefinition, Version=1.0.

如何通过代码(而不是下面的配置)将上述自定义跟踪参与者注册到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>

只需将其作为工作流扩展添加到WorkflowServiceHost

var host = new WorkflowServiceHost(....);
var tracker = new CustomTracking();
host.WorkflowExtensions.Add(tracker);
host.Open();
var host = new WorkflowServiceHost(....);
var tracker = new CustomTracking();
host.WorkflowExtensions.Add(tracker);
host.Open();