Поделиться через


PackUriHelper.Create Метод

Определение

Создает новый URI типа pack.

Перегрузки

Create(Uri)

Создает новый пакет URI, указывающий на пакет.

Create(Uri, Uri)

Создает URI пакета на основе URI Package и URI части пакета.

Create(Uri, Uri, String)

Создает URI пакета на основе заданного URI Package, URI части пакета и добавляемого фрагмента "#".

Комментарии

В следующей таблице показаны примеры вариантов для Create метода .

packageUri partUri fragment Возвращаемый URI пакета
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

Создание URI пакета — это многоэтапный процесс. Например, одним из этапов формирования URI пакета является замена символов packageUri косой черты (/) запятыми (,).

Дополнительные сведения о преобразовании строк и о том, как формируются URI пакетов, см. в приложении A.4 "Примеры преобразования строк" и приложении B.3 "Составление URI пакета" в спецификации Открытых соглашений об упаковке, доступной для скачивания в разделе Скачивание спецификаций и лицензий.

Create(Uri)

Исходный код:
PackUriHelper.PackUriScheme.cs
Исходный код:
PackUriHelper.PackUriScheme.cs
Исходный код:
PackUriHelper.PackUriScheme.cs

Создает новый пакет URI, указывающий на пакет.

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

Параметры

packageUri
Uri

URI связанного Package.

Возвращаемое значение

Uri

Пакет URI для Package, на который ссылается данный packageUri.

Исключения

packageUri имеет значение null.

packageUri не является абсолютным URI.

Примеры

В следующем примере показано, как использовать метод для Create определения URI пакета, который ссылается на пакет.

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

Комментарии

packageUri не может быть указан как null или пустой.

В следующей таблице показаны примеры вариантов для Create.

packageUri Возвращенный URI пакета
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

Создание URI пакета — это многоэтапный процесс. Например, одним из этапов формирования универсального кода ресурса (URI) пакета является замена символов packageUri косой черты (/) запятыми (,).

Дополнительные сведения о преобразовании строк и о том, как формируются URI пакетов, см. в приложениях A.4 "Примеры преобразования строк" и Приложении B.3 "Создание URI пакета" в спецификации Open Packaging Conventions, доступной для скачивания в разделе Спецификации и скачивание лицензий.

См. также раздел

Применяется к

Create(Uri, Uri)

Исходный код:
PackUriHelper.PackUriScheme.cs
Исходный код:
PackUriHelper.PackUriScheme.cs
Исходный код:
PackUriHelper.PackUriScheme.cs

Создает URI пакета на основе URI Package и URI части пакета.

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

Параметры

packageUri
Uri

URI объекта Package.

partUri
Uri

URI части PackagePart в пакете.

Возвращаемое значение

Uri

URI типа pack заданного объекта PackagePart.

Исключения

packageUri имеет значение null.

packageUri не является абсолютным URI.

-или-

partUri не является допустимым синтаксисом URI части.

Примеры

В следующем примере показано, как использовать метод для Create(Uri) определения URI пакета, который ссылается на пакет.

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

Комментарии

packageUri не может быть указан как null или пустой.

Если partUri имеет значение null, возвращаемый URI пакета указывает на пакет.

В следующей таблице показаны примеры вариантов для Create метода .

packageUri partUri Возвращенный URI пакета
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

Создание URI пакета — это многоэтапный процесс. Например, одним из этапов формирования универсального кода ресурса (URI) пакета является замена символов packageUri косой черты (/) запятыми (,).

Дополнительные сведения о преобразовании строк и о том, как формируются URI пакетов, см. в приложениях A.4 "Примеры преобразования строк" и Приложении B.3 "Создание URI пакета" в спецификации Open Packaging Conventions, доступной для скачивания в разделе Спецификации и скачивание лицензий.

См. также раздел

Применяется к

Create(Uri, Uri, String)

Исходный код:
PackUriHelper.PackUriScheme.cs
Исходный код:
PackUriHelper.PackUriScheme.cs
Исходный код:
PackUriHelper.PackUriScheme.cs

Создает URI пакета на основе заданного URI Package, URI части пакета и добавляемого фрагмента "#".

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

Параметры

packageUri
Uri

URI объекта Package.

partUri
Uri

URI части PackagePart в пакете.

fragment
String

Ссылка "#", идентифицирующая элемент в части пакета.

Возвращаемое значение

Uri

URI типа pack, определяющий заданный пакет, часть пакета и фрагмент.

Исключения

packageUri имеет значение null.

packageUri не является абсолютным URI.

-или-

partUri не является допустимым синтаксисом URI части.

-или-

fragment является пустым или начинается с символа "#".

Примеры

В следующем примере показано, как использовать метод для Create(Uri) определения URI пакета, который ссылается на пакет.

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

Комментарии

packageUri не может быть указан как null или пустой.

Если partUri имеет значение null, возвращаемый URI пакета указывает на пакет.

fragment не может быть пустой строкой, но можно указать как null. Если не указано как null, fragment строка должна начинаться с символа "#". Дополнительные сведения о синтаксисе ссылок fragment см. в разделе 3.5 "Фрагмент" документа RFC 3986.

В следующей таблице показаны примеры вариантов для Create метода .

packageUri partUri fragment Возвращенный URI пакета
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

Создание URI пакета — это многоэтапный процесс. Например, одним из этапов формирования URI пакета является замена символов packageUri косой черты (/) запятыми (,).

Дополнительные сведения о преобразовании строк и о том, как формируются URI пакетов, см. в приложении A.4 "Примеры преобразования строк" и приложении B.3 "Составление URI пакета" в спецификации Открытых соглашений об упаковке, доступной для скачивания в разделе Скачивание спецификаций и лицензий.

См. также раздел

Применяется к