PackUriHelper.Create 方法

定義

建立新 Pack URI。

多載

Create(Uri)

建立指向封裝的新 Pack URI。

Create(Uri, Uri)

使用給定的 Package URI 與套件中組件的 URI 來建立套件 URI。

Create(Uri, Uri, String)

使用 Package URI、套件中組件的 URI,以及要附加的 "#" 片段,來建立套件 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 取代為逗號 (,) 。

For more information on string conversion and how pack URIs are formed, see Appendix A.4 "String Conversion Examples" and Appendix B.3 "Composing a Pack URI" in the Open Packaging Conventions specification available for download at Specifications and License Downloads.

Create(Uri)

來源:
PackUriHelper.PackUriScheme.cs
來源:
PackUriHelper.PackUriScheme.cs
來源:
PackUriHelper.PackUriScheme.cs

建立指向封裝的新 Pack URI。

C#
public static Uri Create (Uri packageUri);

參數

packageUri
Uri

所參考之 Package 的 URI。

傳回

Uri

特定 packageUri 所參考之 Package 的 Pack URI。

例外狀況

packageUrinull

packageUri 不是絕對 URI。

範例

下列範例示範如何使用 Create 方法來定義參考封裝的套件 URI。

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

備註

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

For more information on string conversion and how pack URIs are formed, see Appendix A.4 "String Conversion Examples" and Appendix B.3 "Composing a Pack URI" in the Open Packaging Conventions specification available for download at Specifications and License Downloads.

另請參閱

適用於

.NET Framework 4.8.1 和其他版本
產品 版本
.NET Framework 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
Windows Desktop 3.0, 3.1, 5, 6, 7, 8, 9

Create(Uri, Uri)

來源:
PackUriHelper.PackUriScheme.cs
來源:
PackUriHelper.PackUriScheme.cs
來源:
PackUriHelper.PackUriScheme.cs

使用給定的 Package URI 與套件中組件的 URI 來建立套件 URI。

C#
public static Uri Create (Uri packageUri, Uri partUri);
C#
public static Uri Create (Uri packageUri, Uri? partUri);

參數

packageUri
Uri

Package 的 URI。

partUri
Uri

套件中 PackagePart 的 URI。

傳回

Uri

特定 PackagePart 的 Pack URI。

例外狀況

packageUrinull

packageUri 不是絕對 URI。

-或-

partUri 不是有效的組件 URI 語法。

範例

下列範例示範如何使用 Create(Uri) 方法來定義參考封裝的套件 URI。

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

備註

packageUri 不能指定為 Null 或空白。

如果 partUrinull,則傳回的套件 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

For more information on string conversion and how pack URIs are formed, see Appendix A.4 "String Conversion Examples" and Appendix B.3 "Composing a Pack URI" in the Open Packaging Conventions specification available for download at Specifications and License Downloads.

另請參閱

適用於

.NET Framework 4.8.1 和其他版本
產品 版本
.NET Framework 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
Windows Desktop 3.0, 3.1, 5, 6, 7, 8, 9

Create(Uri, Uri, String)

來源:
PackUriHelper.PackUriScheme.cs
來源:
PackUriHelper.PackUriScheme.cs
來源:
PackUriHelper.PackUriScheme.cs

使用 Package URI、套件中組件的 URI,以及要附加的 "#" 片段,來建立套件 URI。

C#
public static Uri Create (Uri packageUri, Uri partUri, string fragment);
C#
public static Uri Create (Uri packageUri, Uri? partUri, string? fragment);

參數

packageUri
Uri

Package 的 URI。

partUri
Uri

套件中 PackagePart 的 URI。

fragment
String

識別此封裝組件中項目的 "#" 參考。

傳回

Uri

識別指定的封裝、封裝組件以及片段的封裝 URI。

例外狀況

packageUrinull

packageUri 不是絕對 URI。

-或-

partUri 不是有效的組件 URI 語法。

-或-

fragment 是空的或開頭並非 "#"。

範例

下列範例示範如何使用 Create(Uri) 方法來定義參考封裝的套件 URI。

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

備註

packageUri 不能指定為 null 或空白。

如果 partUrinull,則傳回的套件 URI 會指向封裝。

fragment 無法是空字串,但可以指定為 null。 未指定為 null時, fragment 字串必須以 '#' 字元開頭。 如需參考語法 fragment 的詳細資訊,請參閱 RFC 3986 的第 3.5 節「片段」。

下表說明 方法的 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 取代為逗號 (,) 。

For more information on string conversion and how pack URIs are formed, see Appendix A.4 "String Conversion Examples" and Appendix B.3 "Composing a Pack URI" in the Open Packaging Conventions specification available for download at Specifications and License Downloads.

另請參閱

適用於

.NET Framework 4.8.1 和其他版本
產品 版本
.NET Framework 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
Windows Desktop 3.0, 3.1, 5, 6, 7, 8, 9