Export (0) Print
Expand All

PackageStore.AddPackage Method

Adds a Package to the store.

Namespace:  System.IO.Packaging
Assembly:  PresentationCore (in PresentationCore.dll)

public static void AddPackage(
	Uri uri,
	Package package
)

Parameters

uri
Type: System.Uri

The key URI of the package to compare in a PackWebRequest.

package
Type: System.IO.Packaging.Package

The package to add to the store.

ExceptionCondition
ArgumentNullException

package is null.

ArgumentException

packageUri is an invalid package URI.

InvalidOperationException

A package with the specified packageUri is already in the store.

packageUri defines the package's key URI that is compared when you call PackWebRequest.

If the packageUri matches the Uri for a PackagePart in a PackWebRequest call, the package defined in the PackageStore is used to access the requested part.

If the packageUri does not match the Uri for a PackagePart in a PackWebRequest call, the package with the specified URI is opened to access the requested part.

Security Note   This method demands EnvironmentPermission for all custom Package (non-ZipPackage) types.

The following example shows how to use the AddPackage method.

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();

.NET Framework

Supported in: 4.6, 4.5, 4, 3.5, 3.0

.NET Framework Client Profile

Supported in: 4, 3.5 SP1
Show:
© 2015 Microsoft