PackUriHelper.Create Método

Definición

Crea un nuevo URI de paquete.

Sobrecargas

Nombre Description
Create(Uri)

Crea un nuevo URI de paquete que apunta a un paquete.

Create(Uri, Uri)

Crea un URI de paquete dado un Package URI y el URI de un elemento del paquete.

Create(Uri, Uri, String)

Crea un URI de paquete dado un Package URI, el URI de un elemento del paquete y un fragmento "#" que se va a anexar.

Comentarios

En la tabla siguiente se muestran casos de ejemplo para el Create método .

packageUri partUri fragment URI del paquete devuelto
http://www.proseware.com/mypackage.pkg /page1.xaml #intro pack://http:,,www.proseware.com,mypackage.pkg/page1.xaml#intro
http://www.proseware.com/mypackage.pkg /page2.xaml nulo pack://http:,,www.proseware.com,mypackage.pkg/page2.xaml
http://www.proseware.com/mypackage.pkg /a/page4.xaml nulo pack://http:,,www.proseware.com,mypackage.pkg/a/page4.xaml
http://www.proseware.com/mypackage.pkg /%41/%61.xml nulo pack://http:,,www.proseware.com,mypackage.pkg/A/a.xml
http://www.proseware.com/mypackage.pkg /%25XY.xml nulo pack://http:,,www.proseware.com,mypackage.pkg/%25XY.xml
http://www.proseware.com/mypackage.pkg /a/page5.xaml #summary pack://http:,,www.proseware.com,mypackage.pkg/a/page5.xaml#summary
http://www.proseware.com/packages.aspx?pkg04 /page1.xaml #intro pack://http:,,www.proseware.com,packages.aspx%3fpkg04/page1.xaml#intro
http://www.proseware.com/mypackage.pkg nulo nulo pack://http:,,www.proseware.com,mypackage.pkg
ftp://ftp.proseware.com/packages/mypackage1.abc /a/mydoc.xaml nulo pack://ftp:,,ftp.proseware.com,packages,mypackage1.abc/a/mydoc.xaml
file:///d:/packages/mypackage2.pkg /a/bar.xaml #xref pack://file:,,,d:,packages,mypackage2.pkg/a/bar.xaml#xref

La redacción de un URI de paquete es un proceso de varios pasos. Por ejemplo, un paso para formar un URI de paquete es reemplazar los caracteres de barra diagonal (/) de por packageUri comas (,).

Para obtener más información sobre la conversión de cadenas y cómo se forman los URI de paquete, vea apéndice A.4 "Ejemplos de conversión de cadenas" y apéndice B.3 "Redacción de un URI de paquete" en la especificación Open Packaging Conventions disponible para su descarga en Especificaciones y descargas de licencias.

Create(Uri)

Crea un nuevo URI de paquete que apunta a un paquete.

public:
 static Uri ^ Create(Uri ^ packageUri);
public static Uri Create(Uri packageUri);
static member Create : Uri -> Uri
Public Shared Function Create (packageUri As Uri) As Uri

Parámetros

packageUri
Uri

Identificador URI del objeto al que se hace Packagereferencia.

Devoluciones

Uri

Identificador URI del paquete al que Package hace referencia el especificado packageUri.

Excepciones

packageUri es null.

packageUri no es un URI absoluto.

Ejemplos

En el ejemplo siguiente se muestra cómo usar el Create método para definir un URI de paquete que hace referencia a un paquete.

// ------------------------ GetFixedDocument --------------------------
/// <summary>
///   Returns the fixed document at a given URI within
///   the currently open XPS package.</summary>
/// <param name="fixedDocUri">
///   The URI of the fixed document to return.</param>
/// <returns>
///   The fixed document at a given URI
///   within the current XPS package.</returns>
private FixedDocument GetFixedDocument(Uri fixedDocUri)
{
    FixedDocument fixedDocument = null;

    // Create the URI for the fixed document within the package. The URI
    // is used to set the Parser context so fonts & other items can load.
    Uri tempUri = new Uri(_xpsDocumentPath, UriKind.RelativeOrAbsolute);
    ParserContext parserContext = new ParserContext();
    parserContext.BaseUri = PackUriHelper.Create(tempUri);

    // Retrieve the fixed document.
    PackagePart fixedDocPart = _xpsPackage.GetPart(fixedDocUri);
    if (fixedDocPart != null)
    {
        object fixedObject =
            XamlReader.Load(fixedDocPart.GetStream(), parserContext);
        if (fixedObject != null)
            fixedDocument = fixedObject as FixedDocument;
    }

    return fixedDocument;
}// end:GetFixedDocument()
' ------------------------ GetFixedDocument --------------------------
''' <summary>
'''   Returns the fixed document at a given URI within
'''   the currently open XPS package.</summary>
''' <param name="fixedDocUri">
'''   The URI of the fixed document to return.</param>
''' <returns>
'''   The fixed document at a given URI
'''   within the current XPS package.</returns>
Private Function GetFixedDocument(ByVal fixedDocUri As Uri) As FixedDocument
    Dim fixedDocument As FixedDocument = Nothing

    ' Create the URI for the fixed document within the package. The URI
    ' is used to set the Parser context so fonts & other items can load.
    Dim tempUri As New Uri(_xpsDocumentPath, UriKind.RelativeOrAbsolute)
    Dim parserContext As New ParserContext()
    parserContext.BaseUri = PackUriHelper.Create(tempUri)

    ' Retrieve the fixed document.
    Dim fixedDocPart As PackagePart = _xpsPackage.GetPart(fixedDocUri)
    If fixedDocPart IsNot Nothing Then
        Dim fixedObject As Object = XamlReader.Load(fixedDocPart.GetStream(), parserContext)
        If fixedObject IsNot Nothing Then
            fixedDocument = TryCast(fixedObject, FixedDocument)
        End If
    End If

    Return fixedDocument
End Function ' end:GetFixedDocument()

Comentarios

packageUri puede que no se especifique como null o esté vacío.

En la tabla siguiente se muestran los casos de ejemplo de Create.

packageUri URI del paquete devuelto
http://www.proseware.com/mypackage.pkg pack://http:,,www.proseware.com,mypackage.pkg
ftp://ftp.proseware.com/packages/mypackage1.abc pack://ftp:,,ftp.proseware.com,packages,mypackage1.abc
file:///d:/packages/mypackage2.pkg pack://file:,,,d:,packages,mypackage2.pkg

La redacción de un URI de paquete es un proceso de varios pasos. Por ejemplo, un paso para formar un URI de paquete es reemplazar los caracteres de barra diagonal (/) de por packageUri comas (,).

Para obtener más información sobre la conversión de cadenas y cómo se forman los URI de paquete, vea apéndice A.4 "Ejemplos de conversión de cadenas" y apéndice B.3 "Redacción de un URI de paquete" en la especificación Open Packaging Conventions disponible para su descarga en Especificaciones y descargas de licencias.

Consulte también

Se aplica a

Create(Uri, Uri)

Crea un URI de paquete dado un Package URI y el URI de un elemento del paquete.

public:
 static Uri ^ Create(Uri ^ packageUri, Uri ^ partUri);
public static Uri Create(Uri packageUri, Uri partUri);
static member Create : Uri * Uri -> Uri
Public Shared Function Create (packageUri As Uri, partUri As Uri) As Uri

Parámetros

packageUri
Uri

Identificador URI de Package.

partUri
Uri

Identificador URI de en PackagePart el paquete.

Devoluciones

Uri

Identificador URI del paquete del especificado PackagePart.

Excepciones

packageUri es null.

packageUri no es un URI absoluto.

O bien

partUri no es una sintaxis URI de parte válida.

Ejemplos

En el ejemplo siguiente se muestra cómo usar el Create(Uri) método para definir un URI de paquete que hace referencia a un paquete.

// ------------------------ GetFixedDocument --------------------------
/// <summary>
///   Returns the fixed document at a given URI within
///   the currently open XPS package.</summary>
/// <param name="fixedDocUri">
///   The URI of the fixed document to return.</param>
/// <returns>
///   The fixed document at a given URI
///   within the current XPS package.</returns>
private FixedDocument GetFixedDocument(Uri fixedDocUri)
{
    FixedDocument fixedDocument = null;

    // Create the URI for the fixed document within the package. The URI
    // is used to set the Parser context so fonts & other items can load.
    Uri tempUri = new Uri(_xpsDocumentPath, UriKind.RelativeOrAbsolute);
    ParserContext parserContext = new ParserContext();
    parserContext.BaseUri = PackUriHelper.Create(tempUri);

    // Retrieve the fixed document.
    PackagePart fixedDocPart = _xpsPackage.GetPart(fixedDocUri);
    if (fixedDocPart != null)
    {
        object fixedObject =
            XamlReader.Load(fixedDocPart.GetStream(), parserContext);
        if (fixedObject != null)
            fixedDocument = fixedObject as FixedDocument;
    }

    return fixedDocument;
}// end:GetFixedDocument()
' ------------------------ GetFixedDocument --------------------------
''' <summary>
'''   Returns the fixed document at a given URI within
'''   the currently open XPS package.</summary>
''' <param name="fixedDocUri">
'''   The URI of the fixed document to return.</param>
''' <returns>
'''   The fixed document at a given URI
'''   within the current XPS package.</returns>
Private Function GetFixedDocument(ByVal fixedDocUri As Uri) As FixedDocument
    Dim fixedDocument As FixedDocument = Nothing

    ' Create the URI for the fixed document within the package. The URI
    ' is used to set the Parser context so fonts & other items can load.
    Dim tempUri As New Uri(_xpsDocumentPath, UriKind.RelativeOrAbsolute)
    Dim parserContext As New ParserContext()
    parserContext.BaseUri = PackUriHelper.Create(tempUri)

    ' Retrieve the fixed document.
    Dim fixedDocPart As PackagePart = _xpsPackage.GetPart(fixedDocUri)
    If fixedDocPart IsNot Nothing Then
        Dim fixedObject As Object = XamlReader.Load(fixedDocPart.GetStream(), parserContext)
        If fixedObject IsNot Nothing Then
            fixedDocument = TryCast(fixedObject, FixedDocument)
        End If
    End If

    Return fixedDocument
End Function ' end:GetFixedDocument()

Comentarios

packageUri no se puede especificar como null o vacío.

Si partUri es null, el URI del paquete devuelto apunta al paquete.

En la tabla siguiente se muestran casos de ejemplo para el Create método .

packageUri partUri URI del paquete devuelto
http://www.proseware.com/mypackage.pkg /page2.xaml pack://http:,,www.proseware.com,mypackage.pkg/page2.xaml
http://www.proseware.com/mypackage.pkg /a/page4.xaml pack://http:,,www.proseware.com,mypackage.pkg/a/page4.xaml
http://www.proseware.com/mypackage.pkg /%41/%61.xml pack://http:,,www.proseware.com,mypackage.pkg/A/a.xml
http://www.proseware.com/mypackage.pkg /%25XY.xml pack://http:,,www.proseware.com,mypackage.pkg/%25XY.xml
http://www.proseware.com/mypackage.pkg nulo pack://http:,,www.proseware.com,mypackage.pkg
ftp://ftp.proseware.com/packages/mypackage1.abc /a/mydoc.xaml pack://ftp:,,ftp.proseware.com,packages,mypackage1.abc/a/mydoc.xaml
file:///d:/packages/mypackage2.pkg /a/bar.xaml pack://file:,,,d:,packages,mypackage2.pkg/a/bar.xaml

La redacción de un URI de paquete es un proceso de varios pasos. Por ejemplo, un paso para formar un URI de paquete es reemplazar los caracteres de barra diagonal (/) de por packageUri comas (,).

Para obtener más información sobre la conversión de cadenas y cómo se forman los URI de paquete, vea apéndice A.4 "Ejemplos de conversión de cadenas" y apéndice B.3 "Redacción de un URI de paquete" en la especificación Open Packaging Conventions disponible para su descarga en Especificaciones y descargas de licencias.

Consulte también

Se aplica a

Create(Uri, Uri, String)

Crea un URI de paquete dado un Package URI, el URI de un elemento del paquete y un fragmento "#" que se va a anexar.

public:
 static Uri ^ Create(Uri ^ packageUri, Uri ^ partUri, System::String ^ fragment);
public static Uri Create(Uri packageUri, Uri partUri, string fragment);
static member Create : Uri * Uri * string -> Uri
Public Shared Function Create (packageUri As Uri, partUri As Uri, fragment As String) As Uri

Parámetros

packageUri
Uri

Identificador URI de Package.

partUri
Uri

Identificador URI de en PackagePart el paquete.

fragment
String

Referencia de "#" que identifica un elemento dentro de la parte del paquete.

Devoluciones

Uri

URI del paquete que identifica el paquete, la parte del paquete y el fragmento especificados.

Excepciones

packageUri es null.

packageUri no es un URI absoluto.

O bien

partUri no es una sintaxis URI de parte válida.

O bien

fragment está vacío o comienza por "#".

Ejemplos

En el ejemplo siguiente se muestra cómo usar el Create(Uri) método para definir un URI de paquete que hace referencia a un paquete.

// ------------------------ GetFixedDocument --------------------------
/// <summary>
///   Returns the fixed document at a given URI within
///   the currently open XPS package.</summary>
/// <param name="fixedDocUri">
///   The URI of the fixed document to return.</param>
/// <returns>
///   The fixed document at a given URI
///   within the current XPS package.</returns>
private FixedDocument GetFixedDocument(Uri fixedDocUri)
{
    FixedDocument fixedDocument = null;

    // Create the URI for the fixed document within the package. The URI
    // is used to set the Parser context so fonts & other items can load.
    Uri tempUri = new Uri(_xpsDocumentPath, UriKind.RelativeOrAbsolute);
    ParserContext parserContext = new ParserContext();
    parserContext.BaseUri = PackUriHelper.Create(tempUri);

    // Retrieve the fixed document.
    PackagePart fixedDocPart = _xpsPackage.GetPart(fixedDocUri);
    if (fixedDocPart != null)
    {
        object fixedObject =
            XamlReader.Load(fixedDocPart.GetStream(), parserContext);
        if (fixedObject != null)
            fixedDocument = fixedObject as FixedDocument;
    }

    return fixedDocument;
}// end:GetFixedDocument()
' ------------------------ GetFixedDocument --------------------------
''' <summary>
'''   Returns the fixed document at a given URI within
'''   the currently open XPS package.</summary>
''' <param name="fixedDocUri">
'''   The URI of the fixed document to return.</param>
''' <returns>
'''   The fixed document at a given URI
'''   within the current XPS package.</returns>
Private Function GetFixedDocument(ByVal fixedDocUri As Uri) As FixedDocument
    Dim fixedDocument As FixedDocument = Nothing

    ' Create the URI for the fixed document within the package. The URI
    ' is used to set the Parser context so fonts & other items can load.
    Dim tempUri As New Uri(_xpsDocumentPath, UriKind.RelativeOrAbsolute)
    Dim parserContext As New ParserContext()
    parserContext.BaseUri = PackUriHelper.Create(tempUri)

    ' Retrieve the fixed document.
    Dim fixedDocPart As PackagePart = _xpsPackage.GetPart(fixedDocUri)
    If fixedDocPart IsNot Nothing Then
        Dim fixedObject As Object = XamlReader.Load(fixedDocPart.GetStream(), parserContext)
        If fixedObject IsNot Nothing Then
            fixedDocument = TryCast(fixedObject, FixedDocument)
        End If
    End If

    Return fixedDocument
End Function ' end:GetFixedDocument()

Comentarios

packageUri puede que no se especifique como null o esté vacío.

Si partUri es null, el URI del paquete devuelto apunta al paquete.

fragment no puede ser una cadena vacía, pero se puede especificar como null. Cuando no se especifica como null, la fragment cadena debe comenzar con un carácter '#'. Para obtener más información sobre la sintaxis de fragment las referencias, vea sección 3.5 "Fragmento" de RFC 3986.

En la tabla siguiente se muestran casos de ejemplo para el Create método .

packageUri partUri fragment URI del paquete devuelto
http://www.proseware.com/mypackage.pkg /page1.xaml #intro pack://http:,,www.proseware.com,mypackage.pkg/page1.xaml#intro
http://www.proseware.com/mypackage.pkg /page2.xaml nulo pack://http:,,www.proseware.com,mypackage.pkg/page2.xaml
http://www.proseware.com/mypackage.pkg /a/page4.xaml nulo pack://http:,,www.proseware.com,mypackage.pkg/a/page4.xaml
http://www.proseware.com/mypackage.pkg /%41/%61.xml nulo pack://http:,,www.proseware.com,mypackage.pkg/A/a.xml
http://www.proseware.com/mypackage.pkg /%25XY.xml nulo pack://http:,,www.proseware.com,mypackage.pkg/%25XY.xml
http://www.proseware.com/mypackage.pkg /a/page5.xaml #summary pack://http:,,www.proseware.com,mypackage.pkg/a/page5.xaml#summary
http://www.proseware.com/packages.aspx?pkg04 /page1.xaml #intro pack://http:,,www.proseware.com,packages.aspx%3fpkg04/page1.xaml#intro
http://www.proseware.com/mypackage.pkg nulo nulo pack://http:,,www.proseware.com,mypackage.pkg
ftp://ftp.proseware.com/packages/mypackage1.abc /a/mydoc.xaml nulo pack://ftp:,,ftp.proseware.com,packages,mypackage1.abc/a/mydoc.xaml
file:///d:/packages/mypackage2.pkg /a/bar.xaml #xref pack://file:,,,d:,packages,mypackage2.pkg/a/bar.xaml#xref

La redacción de un URI de paquete es un proceso de varios pasos. Por ejemplo, un paso para formar un URI de paquete es reemplazar los caracteres de barra diagonal (/) de por packageUri comas (,).

Para obtener más información sobre la conversión de cadenas y cómo se forman los URI de paquete, vea apéndice A.4 "Ejemplos de conversión de cadenas" y apéndice B.3 "Redacción de un URI de paquete" en la especificación Open Packaging Conventions disponible para su descarga en Especificaciones y descargas de licencias.

Consulte también

Se aplica a