SerializerProvider::CreateSerializerWriter Method (SerializerDescriptor^, Stream^)

 

Initializes an object derived from the abstract SerializerWriter class for the specified Stream that will use the specified descriptor.

Namespace:   System.Windows.Documents.Serialization
Assembly:  PresentationFramework (in PresentationFramework.dll)

public:
SerializerWriter^ CreateSerializerWriter(
	SerializerDescriptor^ serializerDescriptor,
	Stream^ stream
)

Parameters

serializerDescriptor
Type: System.Windows.Documents.Serialization::SerializerDescriptor^

A SerializerDescriptor that contains serialization information for the SerializerWriter.

stream
Type: System.IO::Stream^

The Stream to which the returned object writes.

Return Value

Type: System.Windows.Documents.Serialization::SerializerWriter^

An object of a class derived from SerializerWriter.

Exception Condition
ArgumentNullException

One of the parameters is null.

ArgumentException

The serializerDescriptor is specifying the wrong version.

-or-

It is not registered.

-or-

The assembly file cannot be found.

-or-

The assembly cannot be loaded.

Only fully trusted applications can call CreateSerializerWriter.

The following example shows using CreateSerializerWriter to return a plug-in serialization writer for saving a file.

// Create a SerializerProvider for accessing plug-in serializers.
SerializerProvider serializerProvider = new SerializerProvider();

// Locate the serializer that matches the fileName extension.
SerializerDescriptor selectedPlugIn = null;
foreach ( SerializerDescriptor serializerDescriptor in
                serializerProvider.InstalledSerializers )
{
    if ( serializerDescriptor.IsLoadable &&
         fileName.EndsWith(serializerDescriptor.DefaultFileExtension) )
    {   // The plug-in serializer and fileName extensions match.
        selectedPlugIn = serializerDescriptor;
        break; // foreach
    }
}

// If a match for a plug-in serializer was found,
// use it to output and store the document.
if (selectedPlugIn != null)
{
    Stream package = File.Create(fileName);
    SerializerWriter serializerWriter =
        serializerProvider.CreateSerializerWriter(selectedPlugIn,
                                                  package);
    IDocumentPaginatorSource idoc =
        flowDocument as IDocumentPaginatorSource;
    serializerWriter.Write(idoc.DocumentPaginator, null);
    package.Close();
    return true;
}

.NET Framework
Available since 3.0
Return to top
Show: