Поделиться через


TrackingProfileSerializer Класс

Определение

Внимание!

The System.Workflow.* types are deprecated. Instead, please use the new types from System.Activities.*

Предоставляет методы сериализации и десериализации профилей отслеживания в документы XML и обратно при помощи определения XML-схемы (XSD) профилей отслеживания.

public ref class TrackingProfileSerializer
public class TrackingProfileSerializer
[System.Obsolete("The System.Workflow.* types are deprecated.  Instead, please use the new types from System.Activities.*")]
public class TrackingProfileSerializer
type TrackingProfileSerializer = class
[<System.Obsolete("The System.Workflow.* types are deprecated.  Instead, please use the new types from System.Activities.*")>]
type TrackingProfileSerializer = class
Public Class TrackingProfileSerializer
Наследование
TrackingProfileSerializer
Атрибуты

Примеры

В следующем образце кода показывается, как создавать класс TrackingProfileSerializer, используя метод TrackingProfileSerializer конструктора для сериализации класса TrackingProfile. Данный код также использует метод Serialize.

Данный пример кода является частью образца пакета SDK "Query using SQLTrackingService" из файла Program.cs. Дополнительные сведения см. в статье Запрос с помощью 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

Комментарии

Примечание

В этом материале обсуждаются устаревшие типы и пространства имен. Дополнительные сведения см. в статье о нерекомендуемых типах в Windows Workflow Foundation 4.5.

Класс TrackingProfileSerializer использует XSD профилей отслеживания, содержащуюся в свойстве TrackingProfileSerializer.Schema для сериализации объектов TrackingProfile в допустимые документы XML и для десериализации допустимых документов XML в объекты TrackingProfile. Класс TrackingProfileSerializer производит проверку во время сериализации и десериализации и при необходимости выдает соответствующее исключение.

Документ XML предоставляет удобный формат для хранения профилей отслеживания. Он также предоставляет не программный способ разработки профилей отслеживания. Готовый класс SqlTrackingService использует класс TrackingProfileSerializer для сериализации и десериализации профилей отслеживания, хранящихся в его базе данных.

Конструкторы

TrackingProfileSerializer()
Устаревшие..

Инициализирует новый экземпляр класса TrackingProfileSerializer.

Свойства

Schema
Устаревшие..

Получает определение XML-схемы (XSD) профиля отслеживания.

Методы

Deserialize(TextReader)
Устаревшие..

Десериализует XML документ, содержащийся в считывателе текста, при помощи определения XML-схемы (XSD) профиля отслеживания.

Equals(Object)
Устаревшие..

Определяет, равен ли указанный объект текущему объекту.

(Унаследовано от Object)
GetHashCode()
Устаревшие..

Служит хэш-функцией по умолчанию.

(Унаследовано от Object)
GetType()
Устаревшие..

Возвращает объект Type для текущего экземпляра.

(Унаследовано от Object)
MemberwiseClone()
Устаревшие..

Создает неполную копию текущего объекта Object.

(Унаследовано от Object)
Serialize(TextWriter, TrackingProfile)
Устаревшие..

Сериализует профиль отслеживания в документ XML при помощи определения XML-схемы (XSD) профиля отслеживания.

ToString()
Устаревшие..

Возвращает строку, представляющую текущий объект.

(Унаследовано от Object)

Применяется к

См. также раздел