Freigeben über


TrackingProfileSerializer.Serialize(TextWriter, TrackingProfile) Methode

Definition

Serialisiert das Verfolgungsprofil anhand der XML-Schemadefinition (XSD) für Verfolgungsprofile in ein XML-Dokument.

public:
 void Serialize(System::IO::TextWriter ^ writer, System::Workflow::Runtime::Tracking::TrackingProfile ^ profile);
public void Serialize (System.IO.TextWriter writer, System.Workflow.Runtime.Tracking.TrackingProfile profile);
member this.Serialize : System.IO.TextWriter * System.Workflow.Runtime.Tracking.TrackingProfile -> unit
Public Sub Serialize (writer As TextWriter, profile As TrackingProfile)

Parameter

writer
TextWriter

Ein gültiges TrackingProfile.

profile
TrackingProfile

Diese Methode gibt einen TextWriter zurück, der ein XML-Dokument enthält. Der Parameter wird nicht initialisiert übergeben.

Ausnahmen

profile ist null.

- oder -

writer ist null.

profile ist kein gültiges Verfolgungsprofil.

Beispiele

Im folgenden Codebeispiel wird veranschaulicht, wie Sie einen TrackingProfileSerializer mithilfe des TrackingProfileSerializer-Konstruktors zum Serialisieren eines TrackingProfile erstellen. Im Code wird auch die Serialize-Methode verwendet.

Dieses Codebeispiel stammt aus dem Query using SQLTrackingService SDK-Beispiel in der Datei Program.cs. Weitere Informationen finden Sie unter Abfragen mit SQLTrackingService.

private static void CreateAndInsertTrackingProfile()
{
    TrackingProfile profile = new TrackingProfile();
    ActivityTrackPoint activityTrack = new ActivityTrackPoint();
    ActivityTrackingLocation activityLocation = new ActivityTrackingLocation(typeof(Activity));
    activityLocation.MatchDerivedTypes = true;
    IEnumerable<ActivityExecutionStatus> statuses = Enum.GetValues(typeof(ActivityExecutionStatus)) as IEnumerable<ActivityExecutionStatus>;
    foreach (ActivityExecutionStatus status in statuses)
    {
        activityLocation.ExecutionStatusEvents.Add(status);
    }

    activityTrack.MatchingLocations.Add(activityLocation);
    profile.ActivityTrackPoints.Add(activityTrack);
    profile.Version = version;

    WorkflowTrackPoint workflowTrack = new WorkflowTrackPoint();
    WorkflowTrackingLocation workflowLocation = new WorkflowTrackingLocation();
    IEnumerable<TrackingWorkflowEvent> eventStatuses = Enum.GetValues(typeof(TrackingWorkflowEvent)) as IEnumerable<TrackingWorkflowEvent>;
    foreach (TrackingWorkflowEvent status in eventStatuses)
    {
        workflowLocation.Events.Add(status);
    }

    workflowTrack.MatchingLocation = workflowLocation;
    profile.WorkflowTrackPoints.Add(workflowTrack);

    TrackingProfileSerializer serializer = new TrackingProfileSerializer();
    StringWriter writer = new StringWriter(new StringBuilder(), CultureInfo.InvariantCulture);
    serializer.Serialize(writer, profile);
    string trackingprofile = writer.ToString();
    InsertTrackingProfile(trackingprofile);
}
Shared Sub CreateAndInsertTrackingProfile()
    Dim profile As TrackingProfile = New TrackingProfile()

    Dim activityTrack As ActivityTrackPoint = New ActivityTrackPoint()
    Dim activityLocation As ActivityTrackingLocation = New ActivityTrackingLocation(GetType(Activity))
    activityLocation.MatchDerivedTypes = True
    Dim statuses As IEnumerable(Of ActivityExecutionStatus) = CType(System.Enum.GetValues(GetType(ActivityExecutionStatus)), IEnumerable(Of ActivityExecutionStatus))
    For Each status As ActivityExecutionStatus In statuses
        activityLocation.ExecutionStatusEvents.Add(status)
    Next

    activityTrack.MatchingLocations.Add(activityLocation)
    profile.ActivityTrackPoints.Add(activityTrack)
    profile.Version = version

    Dim workflowTrack As WorkflowTrackPoint = New WorkflowTrackPoint()
    Dim workflowLocation As WorkflowTrackingLocation = New WorkflowTrackingLocation()
    Dim eventStatuses As IEnumerable(Of TrackingWorkflowEvent) = CType(System.Enum.GetValues(GetType(TrackingWorkflowEvent)), IEnumerable(Of TrackingWorkflowEvent))
    For Each status As TrackingWorkflowEvent In eventStatuses
        workflowLocation.Events.Add(status)
    Next

    workflowTrack.MatchingLocation = workflowLocation
    profile.WorkflowTrackPoints.Add(workflowTrack)

    Dim serializer As TrackingProfileSerializer = New TrackingProfileSerializer()
    Dim writer As StringWriter = New StringWriter(New StringBuilder(), CultureInfo.InvariantCulture)
    serializer.Serialize(writer, profile)
    Dim trackingProfile As String = writer.ToString()
    InsertTrackingProfile(trackingProfile)
End Sub

Hinweise

Das Erstellen eines wohlgeformten XML-Dokuments aus einem gültigen TrackingProfile wird als Serialisierung bezeichnet. Serialize verwendet das Schema des Verfolgungsprofils, um das Verfolgungsprofil zu serialisieren. profile muss ein gültiges TrackingProfile mit mindestens einem gültigen Verfolgungspunkt sein. Die Validierung des Verfolgungsprofils erfolgt während der Serialisierung. Wenn das Verfolgungsprofil nicht gültig ist, wird ArgumentException ausgelöst. Sie können diese Ausnahme abfangen und ihre Meldungseigenschaft überprüfen, um die Ursache des Validierungsfehlers zu ermitteln. Falls während der Serialisierung des Verfolgungsprofils nicht behandelte Ausnahmen auftreten, wird die Workflowinstanz beendet, für die das Verfolgungsprofil angefordert wurde.

Gilt für:

Weitere Informationen