共用方式為


PackageStore.AddPackage(Uri, Package) 方法

定義

Package 加入至存放區。

public:
 static void AddPackage(Uri ^ uri, System::IO::Packaging::Package ^ package);
public static void AddPackage (Uri uri, System.IO.Packaging.Package package);
static member AddPackage : Uri * System.IO.Packaging.Package -> unit
Public Shared Sub AddPackage (uri As Uri, package As Package)

參數

uri
Uri

要在 PackWebRequest 中比較之 package 的關鍵 URI。

package
Package

要加入至存放區的封裝。

例外狀況

packagenull

packageUri 是無效的套件 URI。

存放區中已有具有指定之 packageUri 的封裝。

範例

下列範例會示範如何使用 AddPackage 方法。

if (rmi.CryptoProvider.CanDecrypt == true)
    ShowStatus("   Decryption granted.");
else
    ShowStatus("   CANNOT DECRYPT!");

ShowStatus("   Getting the Package from\n" +
           "      the EncryptedPackage.");
_xpsPackage = ePackage.GetPackage();
if (_xpsPackage == null)
{
    MessageBox.Show("Unable to get Package.");
    return false;
}

// Set a PackageStore Uri reference for the encrypted stream.
// ("sdk://packLocation" is a pseudo URI used by
//  PackUriHelper.Create to define the parserContext.BaseURI
//  that XamlReader uses to access the encrypted data stream.)
Uri packageUri = new Uri(@"sdk://packLocation", UriKind.Absolute);
// Add the URI package
PackageStore.AddPackage(packageUri, _xpsPackage);
// Determine the starting part for the package.
PackagePart startingPart = GetPackageStartingPart(_xpsPackage);

// Set the DocViewer.Document property.
ShowStatus("   Opening in DocumentViewer.");
ParserContext parserContext = new ParserContext();
parserContext.BaseUri = PackUriHelper.Create(
                            packageUri, startingPart.Uri);
parserContext.XamlTypeMapper = XamlTypeMapper.DefaultMapper;
DocViewer.Document = XamlReader.Load(
    startingPart.GetStream(), parserContext)
        as IDocumentPaginatorSource;

// Enable document menu controls.
menuFileClose.IsEnabled = true;
menuFilePrint.IsEnabled = true;
menuViewIncreaseZoom.IsEnabled = true;
menuViewDecreaseZoom.IsEnabled = true;

// Give the DocumentViewer focus.
DocViewer.Focus();
If rmi.CryptoProvider.CanDecrypt = True Then
    ShowStatus("   Decryption granted.")
Else
    ShowStatus("   CANNOT DECRYPT!")
End If

ShowStatus("   Getting the Package from" & vbLf & "      the EncryptedPackage.")
_xpsPackage = ePackage.GetPackage()
If _xpsPackage Is Nothing Then
    MessageBox.Show("Unable to get Package.")
    Return False
End If

' Set a PackageStore Uri reference for the encrypted stream.
' ("sdk://packLocation" is a pseudo URI used by
'  PackUriHelper.Create to define the parserContext.BaseURI
'  that XamlReader uses to access the encrypted data stream.)
Dim packageUri As New Uri("sdk://packLocation", UriKind.Absolute)
' Add the URI package
PackageStore.AddPackage(packageUri, _xpsPackage)
' Determine the starting part for the package.
Dim startingPart As PackagePart = GetPackageStartingPart(_xpsPackage)

' Set the DocViewer.Document property.
ShowStatus("   Opening in DocumentViewer.")
Dim parserContext As New ParserContext()
parserContext.BaseUri = PackUriHelper.Create(packageUri, startingPart.Uri)
parserContext.XamlTypeMapper = XamlTypeMapper.DefaultMapper
DocViewerProperty.Document = TryCast(XamlReader.Load(startingPart.GetStream(), parserContext), IDocumentPaginatorSource)

' Enable document menu controls.
menuFileClose.IsEnabled = True
menuFilePrint.IsEnabled = True
menuViewIncreaseZoom.IsEnabled = True
menuViewDecreaseZoom.IsEnabled = True

' Give the DocumentViewer focus.
DocViewerProperty.Focus()

備註

packageUri 定義當您呼叫 PackWebRequest時所比較的套件金鑰 URI。

packageUri如果 符合 Uri 呼叫中 PackWebRequest 之 的 PackagePart ,則會使用 中PackageStore定義的封裝來存取要求的元件。

packageUri如果與呼叫中的 PackWebRequest 不相符UriPackagePart,則會開啟具有指定 URI 的套件來存取要求的元件。

安全性注意事項 此方法會要求 EnvironmentPermission 所有自訂 Package (非ZipPackage) 類型。

適用於

另請參閱