|
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
using System.Collections;
namespace System.ComponentModel.Design.Serialization
{
/// <summary>
/// This service provides a way to exchange a collection of objects
/// for a serializable object that represents them. The returned
/// object contains live references to objects in the collection.
/// This returned object can then be passed to any runtime
/// serialization mechanism. The object itself serializes
/// components the same way designers write source for them; by picking
/// them apart property by property. Many objects do not support
/// runtime serialization because their internal state cannot be
/// adequately duplicated. All components that support a designer,
/// however, must support serialization by walking their public
/// properties, methods and events. This interface uses this
/// technique to convert a collection of components into a single
/// opaque object that does support runtime serialization.
/// </summary>
public interface IDesignerSerializationService
{
/// <summary>
/// Deserializes the provided serialization data object and
/// returns a collection of objects contained within that data.
/// </summary>
ICollection Deserialize(object serializationData);
/// <summary>
/// Serializes the given collection of objects and
/// stores them in an opaque serialization data object.
/// The returning object fully supports runtime serialization.
/// </summary>
object Serialize(ICollection objects);
}
}
|