47 lines
1.7 KiB
C#
47 lines
1.7 KiB
C#
namespace System.Workflow.ComponentModel.Serialization
|
|
{
|
|
using System;
|
|
using System.IO;
|
|
using System.CodeDom;
|
|
using System.ComponentModel;
|
|
using System.ComponentModel.Design;
|
|
using System.ComponentModel.Design.Serialization;
|
|
using System.Collections;
|
|
using System.Xml;
|
|
using System.Xml.Serialization;
|
|
using System.Reflection;
|
|
using System.Collections.Generic;
|
|
using System.Diagnostics;
|
|
using System.Text;
|
|
using System.Globalization;
|
|
using System.Workflow.ComponentModel.Compiler;
|
|
using System.Workflow.ComponentModel.Design;
|
|
using System.Runtime.Serialization;
|
|
using System.Security.Permissions;
|
|
using System.Collections.ObjectModel;
|
|
using System.Drawing;
|
|
|
|
#region Class WorkflowMarkupSerializationProvider
|
|
internal class WorkflowMarkupSerializationProvider : IDesignerSerializationProvider
|
|
{
|
|
public virtual object GetSerializer(IDesignerSerializationManager manager, object currentSerializer, Type objectType, Type serializerType)
|
|
{
|
|
// If this isn't a serializer type we recognize, do nothing. Also, if metadata specified
|
|
// a custom serializer, then use it.
|
|
if (serializerType != typeof(WorkflowMarkupSerializer) || currentSerializer != null)
|
|
return null;
|
|
|
|
//DO NOT CHANGE THIS ORDER ELSE DICTIONARY WILL START GETTING SERIALIZED AS COLLECTION
|
|
if (typeof(IDictionary).IsAssignableFrom(objectType))
|
|
return new DictionaryMarkupSerializer();
|
|
|
|
if (CollectionMarkupSerializer.IsValidCollectionType(objectType))
|
|
return new CollectionMarkupSerializer();
|
|
|
|
return new WorkflowMarkupSerializer();
|
|
}
|
|
}
|
|
#endregion
|
|
}
|
|
|