이 문서는 기계 번역을 이용하여 번역되었습니다. 문서를 영문으로 보려면 영문 확인란을 선택하세요. 마우스 포인터를 텍스트 위로 이동시켜 팝업 창에서 영문 텍스트를 표시할 수도 있습니다.
번역
영문

Package 클래스

 

게시 날짜: 2016년 11월

여러 데이터 개체를 저장할 수 있는 컨테이너를 나타냅니다.

네임스페이스:   System.IO.Packaging
어셈블리:  WindowsBase(WindowsBase.dll에 있음)

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

public abstract class Package : IDisposable

이름설명
System_CAPS_protmethodPackage(FileAccess)

새 인스턴스를 초기화는 Package 클래스를 사용 하는 지정 된 FileAccess합니다.

System_CAPS_protmethodPackage(FileAccess, Boolean)

새 인스턴스를 초기화는 Package 클래스를 사용 하는 지정 된 FileAccess 및 스트리밍 옵션입니다.

이름설명
System_CAPS_pubpropertyFileOpenAccess

패키지에 대 한 파일 액세스 설정을 가져옵니다.

System_CAPS_pubpropertyPackageProperties

패키지의 핵심 속성을 가져옵니다.

이름설명
System_CAPS_pubmethodClose()

저장 하 고 패키지 및 모든 내부 파트 스트림을 닫습니다.

System_CAPS_pubmethodCreatePart(Uri, String)

지정 된 URI 및 콘텐츠 형식으로 압축 되지 않은 새 파트를 만듭니다.

System_CAPS_pubmethodCreatePart(Uri, String, CompressionOption)

지정 된 URI, 콘텐츠 형식 및 압축 옵션을 사용 하 여 새 파트를 만듭니다.

System_CAPS_protmethodCreatePartCore(Uri, String, CompressionOption)

파생된 클래스에서 재정의 되 면 패키지에 새 파트를 만듭니다.

System_CAPS_pubmethodCreateRelationship(Uri, TargetMode, String)

지정 된 URI, 대상 모드 및 관계 유형을 사용 하 여 파트를 패키지 수준 관계를 만듭니다.

System_CAPS_pubmethodCreateRelationship(Uri, TargetMode, String, String)

대상 모드, 관계 형식, 지정된 된 URI를 사용 하 여 파트를 패키지 수준 관계를 만듭니다 및 ID(식별자)합니다.

System_CAPS_pubmethodDeletePart(Uri)

패키지에서 지정 된 URI의 파트를 삭제 합니다.

System_CAPS_protmethodDeletePartCore(Uri)

파생된 클래스에서 재정의 되 면 지정 된 URI의 파트를 삭제 합니다.

System_CAPS_pubmethodDeleteRelationship(String)

패키지 수준 관계를 삭제합니다.

System_CAPS_protmethodDispose(Boolean)

및 모든 파트 및 관계의 내용을 저장, 패키지를 닫고, 플러시하고 모든 리소스를 해제 합니다.

System_CAPS_pubmethodEquals(Object)

지정한 개체가 현재 개체와 같은지 여부를 확인합니다. (Object에서 상속됨)

System_CAPS_protmethodFinalize()

개체가 가비지 수집자에서 회수되기 전에, 해당 개체에서 리소스를 해제하고 다른 정리 작업을 수행할 수 있게 합니다. (Object에서 상속됨)

System_CAPS_pubmethodFlush()

패키지에 모든 파트와 포함 된 관계의 내용을 저장 합니다.

System_CAPS_protmethodFlushCore()

파생된 클래스에서 재정의 되 면 파생된 클래스 저장소에 모든 파트 및 관계의 콘텐츠를 저장 합니다.

System_CAPS_pubmethodGetHashCode()

기본 해시 함수로 작동합니다.(Object에서 상속됨)

System_CAPS_pubmethodGetPart(Uri)

지정 된 URI 부분을 반환 합니다.

System_CAPS_protmethodGetPartCore(Uri)

파생된 클래스에서 재정의 되 면 지정된 된 URI로 주소가 지정 된 부분을 반환 합니다.

System_CAPS_pubmethodGetParts()

패키지의 모든 부분의 컬렉션을 반환합니다.

System_CAPS_protmethodGetPartsCore()

파생된 클래스에서 재정의 되 면 패키지에 있는 모든 파트의 배열을 반환 합니다.

System_CAPS_pubmethodGetRelationship(String)

지정 된 식별자를 가진 패키지 수준 관계를 반환합니다.

System_CAPS_pubmethodGetRelationships()

모든 패키지 수준 관계의 컬렉션을 반환합니다.

System_CAPS_pubmethodGetRelationshipsByType(String)

일치 하는 모든 패키지 수준 관계의 컬렉션을 반환 하는 지정 된 RelationshipType합니다.

System_CAPS_pubmethodGetType()

현재 인스턴스의 Type을 가져옵니다.(Object에서 상속됨)

System_CAPS_protmethodMemberwiseClone()

현재 Object의 단순 복사본을 만듭니다.(Object에서 상속됨)

System_CAPS_pubmethodSystem_CAPS_staticOpen(Stream)

지정된 된 IO 스트림에 패키지를 엽니다.

System_CAPS_pubmethodSystem_CAPS_staticOpen(Stream, FileMode)

지정 된 IO 스트림 및 파일 모드와 패키지를 엽니다.

System_CAPS_pubmethodSystem_CAPS_staticOpen(Stream, FileMode, FileAccess)

지정 된 IO 스트림에, 파일 모드 및 파일 액세스 설정을 사용 하 여 패키지를 엽니다.

System_CAPS_pubmethodSystem_CAPS_staticOpen(String)

지정 된 경로 및 파일 이름에 패키지를 엽니다.

System_CAPS_pubmethodSystem_CAPS_staticOpen(String, FileMode)

지정 된 파일 모드를 사용 하 여 지정된 된 경로에서 패키지를 엽니다.

System_CAPS_pubmethodSystem_CAPS_staticOpen(String, FileMode, FileAccess)

지정 된 파일 모드 및 파일 액세스 설정을 사용 하 여 지정된 된 경로에서 패키지를 엽니다.

System_CAPS_pubmethodSystem_CAPS_staticOpen(String, FileMode, FileAccess, FileShare)

지정 된 파일 모드, 파일 액세스 및 설정 하는 파일 공유를 사용 하 여 지정된 된 경로에서 패키지를 엽니다.

System_CAPS_pubmethodPartExists(Uri)

지정된 된 URI 인 파트는 패키지에 있는지 여부를 나타냅니다.

System_CAPS_pubmethodRelationshipExists(String)

지정 된 ID는 패키지 수준 관계는 패키지에 포함 되는지 여부를 나타냅니다.

System_CAPS_pubmethodToString()

현재 개체를 나타내는 문자열을 반환합니다.(Object에서 상속됨)

이름설명
System_CAPS_pubinterfaceSystem_CAPS_privmethodIDisposable.Dispose()

이 멤버는 WPF(Windows Presentation Foundation) 인프라 및 응용 프로그램 사용에 적합 하지 않습니다. 형식이 안전한을 사용 하 여 Dispose 메서드 대신 합니다.

Package 개체를 구성 하는 정의 된 실제 형식 이식성과 효율적인 액세스에 대 한 단일 엔터티로 사용할 수 있는 추상 클래스가입니다.

ZIP 파일은 기본 실제 형식에 대 한는 Package합니다. 다른 Package 구현 데이터베이스, XML 문서와 같은 다른 물리적 형식을 사용 하 여 또는 웹 서비스 될 수 있습니다.

에 포함 된 항목을 파일 시스템 처럼는 Package 폴더와 파일의 계층 구조에서 참조 됩니다.

하지만 Package 자체는 추상 클래스는 ZipPackage 파생된 클래스에서 기본적으로 사용 됩니다는 Open 메서드.

A PackagePart ("파트")에 저장 된 개체를 나타내는 추상 클래스는 한 Package합니다.

A PackageRelationship 원본 간의 연결을 정의 하는 ("관계") Package 또는 PackagePart 와 대상 개체입니다. A PackageRelationship 두 형태 중 하나가 될 수는 각각 두 가지 형식 중 하나일 수 있습니다.

  • 패키지 수준 관계 (생겨난는 Package.CreateRelationship 메서드)와 관련 한 Package 를:

    • 패키지의 대상 부분입니다.

    • 패키지 외부의 대상 리소스입니다.

  • 파트 수준 관계 (작성자는 PackagePart.CreateRelationship 메서드)는 소스와 관련 PackagePart 에:

    • 패키지의 다른 대상 파트입니다.

    • 패키지 외부의 대상 리소스입니다.

관계의 소스 Package 또는 소스 PackagePart 관계의 "소유자"로 간주 됩니다. 소스 개체가 삭제 되 면 원본 개체를 소유한 모든 관계도 삭제 됩니다. 만들기 또는 관계를 삭제 하면 프로세스를 어떤 방식으로든에서 원본 또는 대상 개체를 물리적으로 변경 되지 않습니다.

A PackageDigitalSignature ("디지털 서명")에 포함 된 디지털 서명을 나타내는 관계와 파트의 컴퍼지션은는 Package합니다. 디지털 서명은 출처를 식별 하 고 서명 된 파트 및 관계에 포함 하는 유효성을 검사는 Package 수정 되지 않은 합니다.

패키지는 또한 관리 DRM (디지털 권한)의 콘텐츠 요소는 지원는 Package 권한이 있는 사용자에 게 부여 하는 특정 액세스 권한을 가진 암호화 되도록 합니다.

에 따라는 Package 아키텍처는 XpsDocument 패키지 형식을 기반으로 열기 문서를 저장 하기 위한 것은 XML Paper Specification (XPS)합니다.

Microsoft .NET Framework 패키지를 사용 하 여 콘텐츠, 리소스 및 페이지와 기본적으로 표준 ZIP 파일을 사용 하 여 문서에 대 한 관계를 저장 합니다. 다른 ZIP 파일과 응용 프로그램 사용 하 여 수는 System.IO.Packaging 저장 하 고 필요에 따라 모든 유형 또는 단일 효율적인 액세스 컨테이너의 데이터 파일의 수를 보호 하는 클래스입니다.

자세한 내용은 참조에서 다운로드할 수 있는 규칙 OPC (Open Packaging) 사양 http://go.microsoft.com/fwlink/?LinkID=71255합니다.

다음 예제를 만드는 기본 단계는 Package합니다. 이 예제에서는 문서의 일부로 표시 되는 그래픽 이미지와 함께 문서를 포함 하는 패키지가 만들어집니다. (이것이 HTML 파일에 외부 이미지 파일을 참조 하는 < G > 태그에 지정 된 경우와 비슷합니다.) 두 개의 PackageRelationship 요소 패키지에도 포함 됩니다. 첫 번째, "패키지 수준" 관계를 패키지의 루트 요소와 문서 파트를 정의합니다. 두 번째, "파트 수준" 관계 문서 파트 (파트 수준 관계의 "원본") 및 해당 사용 이미지 파트 (파트 수준 관계의 "대상") 간의 연결을 정의 합니다. 전체 샘플을 참조 하십시오. 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
3.0 이후 사용 가능

이 형식의 모든 public static(Visual Basic의 공유 Visual Basic의 경우) 멤버는 스레드로부터 안전합니다. 인스턴스 멤버는 스레드로부터의 안전이 보장되지 않습니다.

맨 위로 이동
표시: