Esta página foi útil?
Seus comentários sobre este conteúdo são importantes. Queremos saber sua opinião.
Comentários adicionais?
1500 caracteres restantes
Classe Package
Este artigo foi traduzido por máquina. Coloque o ponteiro do mouse sobre as frases do artigo para ver o texto original. Mais informações.
Tradução
Original

Classe Package

Representa um recipiente que pode armazenar vários objetos de dados.

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

public abstract class Package : IDisposable

O tipo Package expõe os membros a seguir.

  NomeDescrição
Método protegidoPackage(FileAccess)Inicializa uma nova instância da Package classe que usa um determinado FileAccess.
Método protegidoPackage(FileAccess, Boolean)Inicializa uma nova instância da Package classe que usa um determinado FileAccess e a opção de fluxo contínuo.
Superior

  NomeDescrição
Propriedade públicaFileOpenAccessObtém o acesso a arquivos e configuração para o pacote.
Propriedade públicaPackagePropertiesObtém as propriedades principais do pacote.
Superior

  NomeDescrição
Método públicoCloseSalva e fecha o pacote além de todos os fluxos de parte subjacente.
Método públicoCreatePart(Uri, String)Cria uma nova parte descompactada com um determinado URI e o tipo de conteúdo.
Método públicoCreatePart(Uri, String, CompressionOption)Cria uma nova parte com um determinado URI, o tipo de conteúdo e a opção de compactação.
Método protegidoCreatePartCoreQuando substituído em uma classe derivada, cria uma nova parte no pacote.
Método públicoCreateRelationship(Uri, TargetMode, String)Cria uma relação de nível de pacote a uma parte com um determinado URI, modo de destino e tipo de relacionamento.
Método públicoCreateRelationship(Uri, TargetMode, String, String)Cria uma relação de nível de pacote a uma parte com um determinado URI, o modo de destino, o tipo de relação, e identificador (ID).
Método públicoDeletePartExclui uma parte com um determinado URI do pacote.
Método protegidoDeletePartCoreQuando substituído em uma classe derivada, exclui uma parte com um determinado URI.
Método públicoDeleteRelationshipExclui uma relação em nível de pacote.
Método protegidoDisposeLibera e salva o conteúdo de todas as partes e relações, fecha o pacote e libera todos os recursos.
Método públicoEquals(Object) Verifica se o objeto especificado é igual ao objeto atual. (Herdado de Object.)
Método protegidoFinalize Permite um objeto tentar liberar recursos e executar outras operações de limpeza antes que ele seja recuperado pela coleta de lixo. (Herdado de Object.)
Método públicoFlushSalva o conteúdo de todas as partes e relações que estão contidas no pacote.
Método protegidoFlushCoreQuando substituído em uma classe derivada, salva o conteúdo de todas as partes e relações no armazenamento de classe derivada.
Método públicoGetHashCodeServe como a função de hash padrão. (Herdado de Object.)
Método públicoGetPartRetorna a parte com um determinado URI.
Método protegidoGetPartCoreQuando substituído em uma classe derivada, retorna a parte endereçada por um determinado URI.
Método públicoGetPartsRetorna uma coleção de todas as partes no pacote.
Método protegidoGetPartsCoreQuando substituído em uma classe derivada, retorna uma matriz de todas as partes no pacote.
Método públicoGetRelationshipRetorna a relação de nível de pacote com um determinado identificador.
Método públicoGetRelationshipsRetorna uma coleção de todas as relações de nível de pacote.
Método públicoGetRelationshipsByTypeRetorna uma coleção de todas as relações de nível de pacote que correspondam a um determinado RelationshipType.
Método públicoGetType Obtém o Type da instância atual. (Herdado de Object.)
Método protegidoMemberwiseCloneCria uma cópia superficial do Object atual. (Herdado de Object.)
Método públicoMembro estáticoOpen(Stream)Abre um pacote em um determinado fluxo de i / o.
Método públicoMembro estáticoOpen(String)Abre um pacote de um determinado nome de arquivo e caminho.
Método públicoMembro estáticoOpen(Stream, FileMode)Abre um pacote com um determinado modo de arquivo e de fluxo de i / o.
Método públicoMembro estáticoOpen(String, FileMode)Abre um pacote de um determinado caminho usando um modo de determinado arquivo.
Método públicoMembro estáticoOpen(Stream, FileMode, FileAccess)Abre um pacote com um determinado fluxo de i / o, o modo de arquivo e a configuração de acesso do arquivo.
Método públicoMembro estáticoOpen(String, FileMode, FileAccess)Abre um pacote de um determinado caminho usando um modo de determinado arquivo e a configuração de acesso do arquivo.
Método públicoMembro estáticoOpen(String, FileMode, FileAccess, FileShare)Abre um pacote de um determinado caminho usando um modo de determinado arquivo, acesso a arquivos e configurações de compartilhamento de arquivo.
Método públicoPartExistsIndica se uma peça com um determinado URI está no pacote.
Método públicoRelationshipExistsIndica se uma relação em nível de pacote com uma determinada ID está contida no pacote.
Método públicoToStringRetorna uma string que representa o objeto atual. (Herdado de Object.)
Superior

  NomeDescrição
Implementação explícita da interfaceMétodo particularIDisposable.DisposeEste membro dá suporte a Windows Presentation Foundation (WPF) infra-estrutura e não se destina ao uso do aplicativo. Usar a segurança de tipos Dispose método em vez disso.
Superior

Package é uma classe abstrata que pode ser usada para organizar objetos em uma única entidade de um formato físico definido para 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 continham em um Package são referenciados em uma organização hierárquica de pastas e arquivos.

Embora Package propriamente dito é uma classe abstrata, a ZipPackage classe derivada é usada como padrão, o Open método.

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

A PackageRelationship ("relacionamento") define uma associação entre uma fonte de Package ou PackagePart e um objeto de destino. A 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) se relaciona com um Package a um:

    • Uma parte de destino no pacote.

    • Um recurso de destino fora do pacote.

  • Uma relação de 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 do relacionamento Package ou fonte de PackagePart é considerado "proprietário" da relação. Quando o objeto de origem é excluído, todos os relacionamentos pertencentes ao objeto de origem também serão excluídos. O processo de criação ou exclusão de um relacionamento não fisicamente alterar objetos de origem ou destino de qualquer maneira.

A PackageDigitalSignature ("assinatura digital") é uma composição de partes e relações que representa uma assinatura digital incluída um Package. A assinatura digital identifica o originador e valida assinados partes e relações continham na Package não foram modificados.

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

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

Microsoft .NET Frameworkusa pacotes para armazenar o conteúdo, recursos e 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, opcionalmente, proteger qualquer tipo ou número de arquivos de dados em um único recipiente 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 a criação de um Package. Neste exemplo, um pacote é criado para conter um documento em conjunto com uma imagem gráfica que é exibido como parte do documento. (Isso é semelhante ao caso em que um arquivo HTML tem um <IMG> marca que faz referência a um arquivo de imagem externos.) Dois PackageRelationship elementos também estão incluídos no pacote. A primeira, uma relação de "nível de pacote", define a parte do documento como elemento de raiz do pacote. Um relacionamento de segundo, "nível de parte" define a associação entre a parte do documento (a "origem" do relacionamento de nível de parte) e seu uso da parte de imagem ("alvo" da relação de nível de parte). Para obter o exemplo completo, consulte escrevendo uma amostra do pacote.


//  -------------------------- 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

Com suporte em: 4.5.2, 4.5.1, 4.5, 4, 3.5, 3.0

.NET Framework Client Profile

Com suporte em: 4, 3.5 SP1

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Função Server Core sem suporte), Windows Server 2008 R2 (Função Server Core com suporte com o SP1 ou posterior, Itanium sem suporte)

O .NET Framework não oferece suporte a todas as versões de cada plataforma. Para obter uma lista das versões com suporte, consulte Requisitos do sistema do .NET Framework.

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

Contribuições da comunidade

ADICIONAR
Mostrar:
© 2015 Microsoft