Exportar (0) Imprimir
Expandir Tudo
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 contêiner que pode armazenar vários objetos de dados.

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

public abstract class Package : IDisposable
Essa classe é abstrata; consulte Hierarquia de herança para obter classes não abstratas derivadas que possam ser usadas em XAML.

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 formato físico primário para o Package. OutrosPackage implementações podem usar outros formatos físicos, sistema autônomo um documento XML, um banco de dados ou serviço Web.

Assim como um sistema de arquivos, itens contidos em um Package são referenciados em uma organização hierárquica de pastas e arquivos.

Embora Package Se é uma classe abstrata, a ZipPackage classe derivada é usado sistema autônomo padrão pela Open método.

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

A PackageRelationship("Relação") define uma associação entre uma fonte 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 (criada 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 (criada pelo PackagePart.CreateRelationship método) está relacionado a uma fonte PackagePart como:

    • Outra parte de destino no pacote.

    • Um recurso de destino fora do pacote.

Fonte de Package ou fonte PackageParté considerado "proprietário" do Relação. Quando o objeto de fonte for excluído, todas as relações de propriedade do objeto de fonte também serão excluídas.O processo de criação ou exclusão de um Relação fisicamente não altera objetos de fonte ou destino em qualquer forma.

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 remetente e valida que o assinado partes e relações contidas o Package não foram modificados.

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

Baseia o Package arquitetura, um XpsDocument é um tipo de pacote projetado para armazenar documentos com base na aberta 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. sistema autônomo com qualquer arquivo ZIP, o 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 OPCS (em aberto Packaging Conventions) disponível para baixar 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 com uma imagem gráfica que é exibido sistema autônomo 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 externo.) Two PackageRelationship elementos também estão incluídos no pacote. O primeiro, uma relação de "nível de pacote", define a parte do documento sistema autônomo elemento de raiz do pacote.Uma relação de "nível de parte" segunda define a associação entre a parte do documento (a "fonte" do relacionamento de nível de parte) e seu uso da imagem parte (o "destino" do relacionamento de nível de parte).For the complete sample, see Escrever um exemplo de pacote.

//  -------------------------- CreatePackage --------------------------/// <summary>///   Creates a package zip file containing specified///   content and resource files.</summary>privatestaticvoid 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 Partusing (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 Partusing (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>privatestaticvoid CopyStream(Stream source, Stream target)
{
    constint 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()

Quaisquer membros static (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.

Windows Vista, Windows XP SP2, Windows Server 2003

o.NET Framework e.NET Compact Framework não oferecem suporte a todas as versões de cada plataforma. Para obter uma lista de versões suportadas, consulte Requisitos de sistema do .NET framework.

.NET Framework

Compatível com: 3.5, 3.0

Contribuições da comunidade

ADICIONAR
Mostrar:
© 2014 Microsoft