Partilhar via


PackUriHelper.Create Método

Definição

Cria um novo URI "pack://".

Sobrecargas

Create(Uri)

Cria um novo URI "pack://" que aponta para um pacote.

Create(Uri, Uri)

Cria um URI "pack://" dado um URI de Package e o URI de uma parte no pacote.

Create(Uri, Uri, String)

Cria um URI "pack://" dado um URI de Package, o URI de uma parte no pacote e um fragmento "#" a ser acrescentado.

Comentários

A tabela a seguir ilustra casos de exemplo para o Create método .

packageUri partUri fragment URI do pacote retornado
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 null pack://http:,,www.proseware.com,mypackage.pkg/page2.xaml
http://www.proseware.com/mypackage.pkg /a/page4.xaml null pack://http:,,www.proseware.com,mypackage.pkg/a/page4.xaml
http://www.proseware.com/mypackage.pkg /%41/%61.xml null pack://http:,,www.proseware.com,mypackage.pkg/A/a.xml
http://www.proseware.com/mypackage.pkg /%25XY.xml null 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 null null pack://http:,,www.proseware.com,mypackage.pkg
ftp://ftp.proseware.com/packages/mypackage1.abc /a/mydoc.xaml null 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

Compor um URI de pacote é um processo de várias etapas. Por exemplo, uma etapa na formação de um URI de pacote é substituir os caracteres de barra (/) do packageUri por vírgulas (,).

Para obter mais informações sobre a conversão de cadeia de caracteres e como os URIs do pacote são formados, consulte Apêndice A.4 "Exemplos de conversão de cadeia de caracteres" e Apêndice B.3 "Compondo um URI de Pacote" na especificação Open Packaging Conventions disponível para download em Especificações e Downloads de Licença.

Create(Uri)

Origem:
PackUriHelper.PackUriScheme.cs
Origem:
PackUriHelper.PackUriScheme.cs
Origem:
PackUriHelper.PackUriScheme.cs

Cria um novo URI "pack://" que aponta para um pacote.

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

O URI do Package referenciado.

Retornos

Uri

O URI "pack://" para o Package referenciado pelo packageUri fornecido.

Exceções

packageUri é null.

packageUri não é um URI absoluto.

Exemplos

O exemplo a seguir mostra como usar o Create método para definir um URI de pacote que faz referência a um pacote.

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

Comentários

packageUri pode não ser especificado como null ou vazio.

A tabela a seguir ilustra casos de exemplo para Create.

packageUri URI do pacote retornado
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

Compor um URI de pacote é um processo de várias etapas. Por exemplo, uma etapa na formação de um URI de pacote é substituir os caracteres de barra (/) de avanço do packageUri por vírgulas (,).

Para obter mais informações sobre a conversão de cadeia de caracteres e como os URIs do pacote são formados, consulte Apêndice A.4 "Exemplos de conversão de cadeia de caracteres" e Apêndice B.3 "Compondo um URI de Pacote" na especificação Convenções de Empacotamento Aberto disponível para download em Especificações e Downloads de Licença.

Confira também

Aplica-se a

Create(Uri, Uri)

Origem:
PackUriHelper.PackUriScheme.cs
Origem:
PackUriHelper.PackUriScheme.cs
Origem:
PackUriHelper.PackUriScheme.cs

Cria um URI "pack://" dado um URI de Package e o URI de uma parte no pacote.

public:
 static Uri ^ Create(Uri ^ packageUri, Uri ^ partUri);
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

O URI da Package.

partUri
Uri

O URI do PackagePart no pacote.

Retornos

Uri

O URI "pack://" do PackagePart fornecido.

Exceções

packageUri é null.

packageUri não é um URI absoluto.

- ou -

partUri não é uma sintaxe de URI de parte válida.

Exemplos

O exemplo a seguir mostra como usar o Create(Uri) método para definir um URI de pacote que faz referência a um pacote.

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

Comentários

packageUri pode não ser especificado como nulo ou vazio.

Se partUri for null, o URI do pacote retornado aponta para o pacote.

A tabela a seguir ilustra casos de exemplo para o Create método .

packageUri partUri URI do pacote retornado
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 null 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

Compor um URI de pacote é um processo de várias etapas. Por exemplo, uma etapa na formação de um URI de pacote é substituir os caracteres de barra (/) de avanço do packageUri por vírgulas (,).

Para obter mais informações sobre a conversão de cadeia de caracteres e como os URIs do pacote são formados, consulte Apêndice A.4 "Exemplos de conversão de cadeia de caracteres" e Apêndice B.3 "Compondo um URI de Pacote" na especificação Convenções de Empacotamento Aberto disponível para download em Especificações e Downloads de Licença.

Confira também

Aplica-se a

Create(Uri, Uri, String)

Origem:
PackUriHelper.PackUriScheme.cs
Origem:
PackUriHelper.PackUriScheme.cs
Origem:
PackUriHelper.PackUriScheme.cs

Cria um URI "pack://" dado um URI de Package, o URI de uma parte no pacote e um fragmento "#" a ser acrescentado.

public:
 static Uri ^ Create(Uri ^ packageUri, Uri ^ partUri, System::String ^ fragment);
public static Uri Create (Uri packageUri, Uri partUri, 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

O URI da Package.

partUri
Uri

O URI do PackagePart no pacote.

fragment
String

Uma referência "#" que identifica um elemento na parte do pacote.

Retornos

Uri

O URI de pacote que identifica o pacote especificado, a parte do pacote e o fragmento.

Exceções

packageUri é null.

packageUri não é um URI absoluto.

- ou -

partUri não é uma sintaxe de URI de parte válida.

- ou -

fragment está vazio ou começa com "#".

Exemplos

O exemplo a seguir mostra como usar o Create(Uri) método para definir um URI de pacote que faz referência a um pacote.

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

Comentários

packageUri pode não ser especificado como null ou vazio.

Se partUri for null, o URI do pacote retornado aponta para o pacote.

fragment não pode ser uma cadeia de caracteres vazia, mas pode ser especificada como null. Quando não especificada como null, a fragment cadeia de caracteres deve começar com um caractere '#'. Para obter mais informações sobre a sintaxe das fragment referências, consulte Seção 3.5 "Fragmento" do RFC 3986.

A tabela a seguir ilustra casos de exemplo para o Create método .

packageUri partUri fragment URI do pacote retornado
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 null pack://http:,,www.proseware.com,mypackage.pkg/page2.xaml
http://www.proseware.com/mypackage.pkg /a/page4.xaml null pack://http:,,www.proseware.com,mypackage.pkg/a/page4.xaml
http://www.proseware.com/mypackage.pkg /%41/%61.xml null pack://http:,,www.proseware.com,mypackage.pkg/A/a.xml
http://www.proseware.com/mypackage.pkg /%25XY.xml null 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 null null pack://http:,,www.proseware.com,mypackage.pkg
ftp://ftp.proseware.com/packages/mypackage1.abc /a/mydoc.xaml null 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

Compor um URI de pacote é um processo de várias etapas. Por exemplo, uma etapa na formação de um URI de pacote é substituir os caracteres de barra (/) do packageUri por vírgulas (,).

Para obter mais informações sobre a conversão de cadeia de caracteres e como os URIs do pacote são formados, consulte Apêndice A.4 "Exemplos de conversão de cadeia de caracteres" e Apêndice B.3 "Compondo um URI de Pacote" na especificação Open Packaging Conventions disponível para download em Especificações e Downloads de Licença.

Confira também

Aplica-se a