Este artigo foi traduzido por máquina. Para visualizar o arquivo em inglês, marque a caixa de seleção Inglês. Você também pode exibir o texto Em inglês em uma janela pop-up, movendo o ponteiro do mouse sobre o texto.
Tradução
Inglês

Classe Package

 

Representa um contêiner que pode armazenar vários objetos de dados.

Namespace:   System.IO.Packaging
Assembly:  WindowsBase (em WindowsBase.dll)

System.Object
  System.IO.Packaging.Package
    System.IO.Packaging.ZipPackage

public abstract class Package : IDisposable

NomeDescrição
System_CAPS_protmethodPackage(FileAccess)

Inicializa uma nova instância do Package classe que usa um determinado FileAccess.

System_CAPS_protmethodPackage(FileAccess, Boolean)

Inicializa uma nova instância do Package classe que usa um determinado FileAccess e opção de streaming.

NomeDescrição
System_CAPS_pubpropertyFileOpenAccess

Obtém o acesso ao arquivo configuração para o pacote.

System_CAPS_pubpropertyPackageProperties

Obtém as propriedades principais do pacote.

NomeDescrição
System_CAPS_pubmethodClose()

Salva e fecha o pacote e todos os fluxos de parte subjacente.

System_CAPS_pubmethodCreatePart(Uri, String)

Cria uma nova parte descompactada com um determinado URI e o tipo de conteúdo.

System_CAPS_pubmethodCreatePart(Uri, String, CompressionOption)

Cria uma nova parte com um determinado URI, o tipo de conteúdo e a opção de compactação.

System_CAPS_protmethodCreatePartCore(Uri, String, CompressionOption)

Quando substituído em uma classe derivada, cria uma nova parte no pacote.

System_CAPS_pubmethodCreateRelationship(Uri, TargetMode, String)

Cria uma relação em nível de pacote a uma parte com um determinado URI, o modo de destino e o tipo de relação.

System_CAPS_pubmethodCreateRelationship(Uri, TargetMode, String, String)

Cria uma relação em nível de pacote a uma parte com um determinado URI, o modo de destino, o tipo de relação, e ID (identificador).

System_CAPS_pubmethodDeletePart(Uri)

Exclui uma parte com um determinado URI do pacote.

System_CAPS_protmethodDeletePartCore(Uri)

Quando substituído em uma classe derivada, exclui uma parte com um determinado URI.

System_CAPS_pubmethodDeleteRelationship(String)

Exclui uma relação em nível de pacote.

System_CAPS_protmethodDispose(Boolean)

Libera e salva o conteúdo de todas as partes e relações, fecha o pacote e libera todos os recursos.

System_CAPS_pubmethodEquals(Object)

Verifica se o objeto especificado é igual ao objeto atual. (Herdado de Object.)

System_CAPS_protmethodFinalize()

Permite que um objeto tente liberar recursos e executar outras operações de limpeza antes que ele seja recuperado pela coleta de lixo. (Herdado de Object.)

System_CAPS_pubmethodFlush()

Salva o conteúdo de todas as partes e relações que estão contidas no pacote.

System_CAPS_protmethodFlushCore()

Quando substituído em uma classe derivada, salva o conteúdo de todas as partes e relações para o armazenamento de classe derivada.

System_CAPS_pubmethodGetHashCode()

Serve como a função de hash padrão.(Herdado de Object.)

System_CAPS_pubmethodGetPart(Uri)

Retorna a parte com um determinado URI.

System_CAPS_protmethodGetPartCore(Uri)

Quando substituído em uma classe derivada, retorna a parte endereçada por um determinado URI.

System_CAPS_pubmethodGetParts()

Retorna uma coleção de todas as partes do pacote.

System_CAPS_protmethodGetPartsCore()

Quando substituído em uma classe derivada, retorna uma matriz de todas as partes do pacote.

System_CAPS_pubmethodGetRelationship(String)

Retorna a relação em nível de pacote com o identificador fornecido.

System_CAPS_pubmethodGetRelationships()

Retorna uma coleção de todas as relações de nível de pacote.

System_CAPS_pubmethodGetRelationshipsByType(String)

Retorna uma coleção de todas as relações de nível de pacote que correspondem a um determinado RelationshipType.

System_CAPS_pubmethodGetType()

Obtém o Type da instância atual.(Herdado de Object.)

System_CAPS_protmethodMemberwiseClone()

Cria uma cópia superficial do Object atual.(Herdado de Object.)

System_CAPS_pubmethodSystem_CAPS_staticOpen(Stream)

Abre um pacote em um determinado fluxo de e/s.

System_CAPS_pubmethodSystem_CAPS_staticOpen(Stream, FileMode)

Abre um pacote com um determinado modo de fluxo e o arquivo de e/s.

System_CAPS_pubmethodSystem_CAPS_staticOpen(Stream, FileMode, FileAccess)

Abre um pacote com um determinado fluxo de e/s, o modo de arquivo e a configuração de acesso ao arquivo.

System_CAPS_pubmethodSystem_CAPS_staticOpen(String)

Abre um pacote em um determinado caminho e nome de arquivo.

System_CAPS_pubmethodSystem_CAPS_staticOpen(String, FileMode)

Abre um pacote em um determinado caminho usando um modo de arquivo fornecido.

System_CAPS_pubmethodSystem_CAPS_staticOpen(String, FileMode, FileAccess)

Abre um pacote em um determinado caminho usando um modo de arquivo especificado e a configuração de acesso ao arquivo.

System_CAPS_pubmethodSystem_CAPS_staticOpen(String, FileMode, FileAccess, FileShare)

Abre um pacote em um determinado caminho usando um modo de determinado arquivo, acesso a arquivos e configurações de compartilhamento de arquivo.

System_CAPS_pubmethodPartExists(Uri)

Indica se uma parte com um determinado URI está no pacote.

System_CAPS_pubmethodRelationshipExists(String)

Indica se uma relação em nível de pacote com uma determinada ID está contida no pacote.

System_CAPS_pubmethodToString()

Retorna uma string que representa o objeto atual.(Herdado de Object.)

NomeDescrição
System_CAPS_pubinterfaceSystem_CAPS_privmethodIDisposable.Dispose()

Esse membro oferece suporte a Windows Presentation Foundation (WPF) infraestrutura e não se destina ao uso do aplicativo. Usar a segurança de tipos Dispose método em vez disso.

Package é uma classe abstrata que pode ser usada para organizar objetos em uma única entidade de um formato físico definido para a portabilidade e acesso eficiente.

Um arquivo ZIP é o principal formato físico para o Package. Outros Package implementações podem usar outros formatos físicos, como um documento XML, um banco de dados ou serviço da Web.

Como um sistema de arquivos, os itens contidos em um Package referenciadas em uma organização hierárquica de pastas e arquivos.

Embora Package em si é uma classe abstrata, a ZipPackage classe derivada é usado como padrão pelo Open método.

Um PackagePart ("parte") é a classe abstrata que representa um objeto que é armazenado em um Package.

Um PackageRelationship ("relação") define uma associação entre uma fonte Package ou PackagePart e um objeto de destino. Um PackageRelationship pode ser um dos dois tipos, cada um deles pode ser uma das duas formas:

  • Uma relação em nível de pacote (criado pelo Package.CreateRelationship método) relaciona um Package como:

    • Uma parte de destino no pacote.

    • Um recurso de destino fora do pacote.

  • Uma relação em nível de parte (criado pelo PackagePart.CreateRelationship método) está relacionado a uma fonte de PackagePart como:

    • Outra parte de destino no pacote.

    • Um recurso de destino fora do pacote.

Origem da relação Package ou origem PackagePart é considerado "proprietário" da relação. Quando o objeto de origem é excluído, todas as relações de propriedade do objeto de origem também são excluídas. O processo de criação ou exclusão de uma relação não altera fisicamente objetos de origem ou destino de qualquer forma.

Um PackageDigitalSignature ("assinatura digital") é uma composição de partes e relações que representam uma assinatura digital acompanha um Package. A assinatura digital identifica o remetente e valida as partes assinados e as relações contidas no Package não foram modificadas.

Pacotes também oferecem suporte a gerenciamento de direitos digitais (DRM), que permite que os elementos de conteúdo em um Package deve ser criptografado com direitos de acesso específicos concedidos aos usuários autorizados.

Com base no Package arquitetura, um XpsDocument é um tipo de pacote criado para armazenar documentos com base em abrir XML Paper Specification (XPS).

Microsoft .NET Framework usa pacotes para armazenar conteúdo, recursos e as relações de páginas e documentos usando um arquivo ZIP padrão por padrão. Como com qualquer arquivo ZIP, seu aplicativo pode usar o System.IO.Packaging classes para armazenar e proteger opcionalmente qualquer tipo ou o número de arquivos de dados em um único contêiner de acesso eficiente.

Para obter mais informações, consulte a especificação de Open Packaging Conventions (OPC) disponível para download em http://go.microsoft.com/fwlink/?LinkID=71255.

O exemplo a seguir mostra as etapas básicas para criar um Package. Neste exemplo, um pacote é criado para conter um documento junto com uma imagem gráfica é exibido como parte do documento. (Isso é semelhante ao caso em que um arquivo HTML tem uma marca < IMG > que faz referência a um arquivo de imagem externa.) Dois PackageRelationship elementos também são incluídos no pacote. Primeiro, uma relação de "nível de pacote", define a parte do documento como elemento de raiz do pacote. Uma relação em segundo lugar, "nível de parte" define a associação entre a parte do documento (a "origem" do relacionamento com o nível de parte) e seu uso da parte de imagem (o "destino" do relacionamento com o nível de parte). Para o exemplo completo, consulte Writing a Package Sample.

//  -------------------------- CreatePackage --------------------------
/// <summary>
///   Creates a package zip file containing specified
///   content and resource files.</summary>
private static void CreatePackage()
{
    // Convert system path and file names to Part URIs. In this example
    // Uri partUriDocument /* /Content/Document.xml */ =
    //     PackUriHelper.CreatePartUri(
    //         new Uri("Content\Document.xml", UriKind.Relative));
    // Uri partUriResource /* /Resources/Image1.jpg */ =
    //     PackUriHelper.CreatePartUri(
    //         new Uri("Resources\Image1.jpg", UriKind.Relative));
    Uri partUriDocument = PackUriHelper.CreatePartUri(
                              new Uri(documentPath, UriKind.Relative));
    Uri partUriResource = PackUriHelper.CreatePartUri(
                              new Uri(resourcePath, UriKind.Relative));

    // Create the Package
    // (If the package file already exists, FileMode.Create will
    //  automatically delete it first before creating a new one.
    //  The 'using' statement insures that 'package' is
    //  closed and disposed when it goes out of scope.)
    using (Package package =
        Package.Open(packagePath, FileMode.Create))
    {
        // Add the Document part to the Package
        PackagePart packagePartDocument =
            package.CreatePart(partUriDocument,
                           System.Net.Mime.MediaTypeNames.Text.Xml);

        // Copy the data to the Document Part
        using (FileStream fileStream = new FileStream(
               documentPath, FileMode.Open, FileAccess.Read))
        {
            CopyStream(fileStream, packagePartDocument.GetStream());
        }// end:using(fileStream) - Close and dispose fileStream.

        // Add a Package Relationship to the Document Part
        package.CreateRelationship(packagePartDocument.Uri,
                                   TargetMode.Internal,
                                   PackageRelationshipType);

        // Add a Resource Part to the Package
        PackagePart packagePartResource =
            package.CreatePart(partUriResource,
                           System.Net.Mime.MediaTypeNames.Image.Jpeg);

        // Copy the data to the Resource Part
        using (FileStream fileStream = new FileStream(
               resourcePath, FileMode.Open, FileAccess.Read))
        {
            CopyStream(fileStream, packagePartResource.GetStream());
        }// end:using(fileStream) - Close and dispose fileStream.

        // Add Relationship from the Document part to the Resource part
        packagePartDocument.CreateRelationship(
                                new Uri(@"../resources/image1.jpg",
                                UriKind.Relative),
                                TargetMode.Internal,
                                ResourceRelationshipType);

    }// end:using (Package package) - Close and dispose package.

}// end:CreatePackage()


//  --------------------------- CopyStream ---------------------------
/// <summary>
///   Copies data from a source stream to a target stream.</summary>
/// <param name="source">
///   The source stream to copy from.</param>
/// <param name="target">
///   The destination stream to copy to.</param>
private static void CopyStream(Stream source, Stream target)
{
    const int bufSize = 0x1000;
    byte[] buf = new byte[bufSize];
    int bytesRead = 0;
    while ((bytesRead = source.Read(buf, 0, bufSize)) > 0)
        target.Write(buf, 0, bytesRead);
}// end:CopyStream()

.NET Framework
Disponível desde 3.0

Quaisquer membros estáticos públicos ( Compartilhado no Visual Basic) desse tipo são thread-safe. Não há garantia de que qualquer membro de instância seja thread-safe.

Retornar ao início
Mostrar: