TrackingProfile是用于控制要跟踪的内容。
///
<summary>
/// 创建简单的TrackingProfile,该TrackingProfile只跟踪CodeActivity。
/// </summary>
static void CreateSimpleTrackingProfile()
{
// 实例化TrackingProfile
TrackingProfile myProfile = new TrackingProfile();
// 开始登记要跟踪的Activity
ActivityTrackPoint myTrackPoint = new ActivityTrackPoint();
// 说明只跟踪CodeActivity类型。
ActivityTrackingLocation myLocation = new ActivityTrackingLocation( typeof (CodeActivity));
// 如果要跟踪所有的Activity,则应传入Activity类型。如:
// ActivityTrackingLocation myLocation = new ActivityTrackingLocation(typeof(Activity));
// MatchDerivedTypes属性表示是否要适配传入的追踪类型。个人认为如果MatchDerivedTypes属性值为假,则继承于需要跟踪类型(本例中为CodeActivity)的子类都会被跟踪,如果为false,则只跟踪需要跟踪的类型,不跟踪它的子类。
myLocation.MatchDerivedTypes = false ;
// 添加要跟踪的Activity事件
myLocation.ExecutionStatusEvents.Add(ActivityExecutionStatus.Initialized);
myLocation.ExecutionStatusEvents.Add(ActivityExecutionStatus.Executing);
myLocation.ExecutionStatusEvents.Add(ActivityExecutionStatus.Closed);
myTrackPoint.MatchingLocations.Add(myLocation);
myProfile.ActivityTrackPoints.Add(myTrackPoint);
// 设置TrackingProfile版本
myProfile.Version = new Version( " 1.0.0.0 " );
// 对TrackingProfile进行序列化
TrackingProfileSerializer trackingProfileSerializer = new TrackingProfileSerializer();
StringBuilder trackingProfileString = new StringBuilder();
using (StringWriter writer = new StringWriter(trackingProfileString, CultureInfo.InvariantCulture))
{
trackingProfileSerializer.Serialize(writer, myProfile);
// 将序列化后的信息输出到控制台,可以在此将TrackingProfile信息添加到文件或数据库中
Console.WriteLine(writer.ToString());
}
}
/// 创建简单的TrackingProfile,该TrackingProfile只跟踪CodeActivity。
/// </summary>
static void CreateSimpleTrackingProfile()
{
// 实例化TrackingProfile
TrackingProfile myProfile = new TrackingProfile();
// 开始登记要跟踪的Activity
ActivityTrackPoint myTrackPoint = new ActivityTrackPoint();
// 说明只跟踪CodeActivity类型。
ActivityTrackingLocation myLocation = new ActivityTrackingLocation( typeof (CodeActivity));
// 如果要跟踪所有的Activity,则应传入Activity类型。如:
// ActivityTrackingLocation myLocation = new ActivityTrackingLocation(typeof(Activity));
// MatchDerivedTypes属性表示是否要适配传入的追踪类型。个人认为如果MatchDerivedTypes属性值为假,则继承于需要跟踪类型(本例中为CodeActivity)的子类都会被跟踪,如果为false,则只跟踪需要跟踪的类型,不跟踪它的子类。
myLocation.MatchDerivedTypes = false ;
// 添加要跟踪的Activity事件
myLocation.ExecutionStatusEvents.Add(ActivityExecutionStatus.Initialized);
myLocation.ExecutionStatusEvents.Add(ActivityExecutionStatus.Executing);
myLocation.ExecutionStatusEvents.Add(ActivityExecutionStatus.Closed);
myTrackPoint.MatchingLocations.Add(myLocation);
myProfile.ActivityTrackPoints.Add(myTrackPoint);
// 设置TrackingProfile版本
myProfile.Version = new Version( " 1.0.0.0 " );
// 对TrackingProfile进行序列化
TrackingProfileSerializer trackingProfileSerializer = new TrackingProfileSerializer();
StringBuilder trackingProfileString = new StringBuilder();
using (StringWriter writer = new StringWriter(trackingProfileString, CultureInfo.InvariantCulture))
{
trackingProfileSerializer.Serialize(writer, myProfile);
// 将序列化后的信息输出到控制台,可以在此将TrackingProfile信息添加到文件或数据库中
Console.WriteLine(writer.ToString());
}
}
直接在控制台下调用该方法,就可以得到如下的结果:
致于TrackingProfile将如何的应用在自定义的TrackingService与SqlTrackingService中,将在以后进行分析。