TrackingProfileSerializer.Serialize(TextWriter, TrackingProfile) Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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 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.