Uri Kelas
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Menyediakan representasi objek dari pengidentifikasi sumber daya seragam (URI) dan akses mudah ke bagian URI.
public ref class Uri
public ref class Uri : IEquatable<Uri ^>, ISpanFormattable, System::Runtime::Serialization::ISerializable
public ref class Uri : System::Runtime::Serialization::ISerializable
public ref class Uri : ISpanFormattable, System::Runtime::Serialization::ISerializable
public ref class Uri : MarshalByRefObject, System::Runtime::Serialization::ISerializable
public class Uri
public class Uri : IEquatable<Uri>, ISpanFormattable, System.Runtime.Serialization.ISerializable
public class Uri : System.Runtime.Serialization.ISerializable
public class Uri : ISpanFormattable, System.Runtime.Serialization.ISerializable
[System.Serializable]
public class Uri : MarshalByRefObject, System.Runtime.Serialization.ISerializable
[System.Serializable]
[System.ComponentModel.TypeConverter(typeof(System.UriTypeConverter))]
public class Uri : System.Runtime.Serialization.ISerializable
type Uri = class
type Uri = class
interface IEquatable<Uri>
interface IFormattable
interface ISpanFormattable
interface ISerializable
type Uri = class
interface ISerializable
type Uri = class
interface ISpanFormattable
interface IFormattable
interface ISerializable
type Uri = class
interface IFormattable
interface ISpanFormattable
interface IEquatable<Uri>
interface ISerializable
[<System.Serializable>]
type Uri = class
inherit MarshalByRefObject
interface ISerializable
[<System.Serializable>]
[<System.ComponentModel.TypeConverter(typeof(System.UriTypeConverter))>]
type Uri = class
interface ISerializable
Public Class Uri
Public Class Uri
Implements IEquatable(Of Uri), ISerializable, ISpanFormattable
Public Class Uri
Implements ISerializable
Public Class Uri
Implements ISerializable, ISpanFormattable
Public Class Uri
Inherits MarshalByRefObject
Implements ISerializable
- Warisan
-
Uri
- Warisan
- Atribut
- Penerapan
Contoh
Contoh berikut membuat instans Uri kelas dan menggunakannya untuk melakukan permintaan GET dengan HttpClient.
Uri siteUri = new Uri("http://www.contoso.com/");
// HttpClient lifecycle management best practices:
// https://learn.microsoft.com/dotnet/fundamentals/networking/http/httpclient-guidelines#recommended-use
HttpClient client = new HttpClient();
HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Get, siteUri);
HttpResponseMessage response = client.Send(request);
let siteUri = Uri "http://www.contoso.com/"
// HttpClient lifecycle management best practices:
// https://learn.microsoft.com/dotnet/fundamentals/networking/http/httpclient-guidelines#recommended-use
use client = new HttpClient ()
use request = new HttpRequestMessage (HttpMethod.Get, siteUri)
use response = client.Send request
Dim siteUri As New Uri("http://www.contoso.com/")
' HttpClient lifecycle management best practices:
' https://learn.microsoft.com/dotnet/fundamentals/networking/http/httpclient-guidelines#recommended-use
Dim client As New HttpClient()
Dim request As New HttpRequestMessage(HttpMethod.Get, siteUri)
Dim response As HttpResponseMessage = client.Send(request)
Cuplikan kode berikut menunjukkan nilai contoh dari berbagai properti di kelas .
Uri uri = new Uri("https://user:password@www.contoso.com:80/Home/Index.htm?q1=v1&q2=v2#FragmentName");
Console.WriteLine($"AbsolutePath: {uri.AbsolutePath}");
Console.WriteLine($"AbsoluteUri: {uri.AbsoluteUri}");
Console.WriteLine($"DnsSafeHost: {uri.DnsSafeHost}");
Console.WriteLine($"Fragment: {uri.Fragment}");
Console.WriteLine($"Host: {uri.Host}");
Console.WriteLine($"HostNameType: {uri.HostNameType}");
Console.WriteLine($"IdnHost: {uri.IdnHost}");
Console.WriteLine($"IsAbsoluteUri: {uri.IsAbsoluteUri}");
Console.WriteLine($"IsDefaultPort: {uri.IsDefaultPort}");
Console.WriteLine($"IsFile: {uri.IsFile}");
Console.WriteLine($"IsLoopback: {uri.IsLoopback}");
Console.WriteLine($"IsUnc: {uri.IsUnc}");
Console.WriteLine($"LocalPath: {uri.LocalPath}");
Console.WriteLine($"OriginalString: {uri.OriginalString}");
Console.WriteLine($"PathAndQuery: {uri.PathAndQuery}");
Console.WriteLine($"Port: {uri.Port}");
Console.WriteLine($"Query: {uri.Query}");
Console.WriteLine($"Scheme: {uri.Scheme}");
Console.WriteLine($"Segments: {string.Join(", ", uri.Segments)}");
Console.WriteLine($"UserEscaped: {uri.UserEscaped}");
Console.WriteLine($"UserInfo: {uri.UserInfo}");
// AbsolutePath: /Home/Index.htm
// AbsoluteUri: https://user:password@www.contoso.com:80/Home/Index.htm?q1=v1&q2=v2#FragmentName
// DnsSafeHost: www.contoso.com
// Fragment: #FragmentName
// Host: www.contoso.com
// HostNameType: Dns
// IdnHost: www.contoso.com
// IsAbsoluteUri: True
// IsDefaultPort: False
// IsFile: False
// IsLoopback: False
// IsUnc: False
// LocalPath: /Home/Index.htm
// OriginalString: https://user:password@www.contoso.com:80/Home/Index.htm?q1=v1&q2=v2#FragmentName
// PathAndQuery: /Home/Index.htm?q1=v1&q2=v2
// Port: 80
// Query: ?q1=v1&q2=v2
// Scheme: https
// Segments: /, Home/, Index.htm
// UserEscaped: False
// UserInfo: user:password
let uri = Uri "https://user:password@www.contoso.com:80/Home/Index.htm?q1=v1&q2=v2#FragmentName"
printfn $"AbsolutePath: {uri.AbsolutePath}"
printfn $"AbsoluteUri: {uri.AbsoluteUri}"
printfn $"DnsSafeHost: {uri.DnsSafeHost}"
printfn $"Fragment: {uri.Fragment}"
printfn $"Host: {uri.Host}"
printfn $"HostNameType: {uri.HostNameType}"
printfn $"IdnHost: {uri.IdnHost}"
printfn $"IsAbsoluteUri: {uri.IsAbsoluteUri}"
printfn $"IsDefaultPort: {uri.IsDefaultPort}"
printfn $"IsFile: {uri.IsFile}"
printfn $"IsLoopback: {uri.IsLoopback}"
printfn $"IsUnc: {uri.IsUnc}"
printfn $"LocalPath: {uri.LocalPath}"
printfn $"OriginalString: {uri.OriginalString}"
printfn $"PathAndQuery: {uri.PathAndQuery}"
printfn $"Port: {uri.Port}"
printfn $"Query: {uri.Query}"
printfn $"Scheme: {uri.Scheme}"
printfn $"""Segments: {String.Join(", ", uri.Segments)}"""
printfn $"UserEscaped: {uri.UserEscaped}"
printfn $"UserInfo: {uri.UserInfo}"
// AbsolutePath: /Home/Index.htm
// AbsoluteUri: https://user:password@www.contoso.com:80/Home/Index.htm?q1=v1&q2=v2#FragmentName
// DnsSafeHost: www.contoso.com
// Fragment: #FragmentName
// Host: www.contoso.com
// HostNameType: Dns
// IdnHost: www.contoso.com
// IsAbsoluteUri: True
// IsDefaultPort: False
// IsFile: False
// IsLoopback: False
// IsUnc: False
// LocalPath: /Home/Index.htm
// OriginalString: https://user:password@www.contoso.com:80/Home/Index.htm?q1=v1&q2=v2#FragmentName
// PathAndQuery: /Home/Index.htm?q1=v1&q2=v2
// Port: 80
// Query: ?q1=v1&q2=v2
// Scheme: https
// Segments: /, Home/, Index.htm
// UserEscaped: False
// UserInfo: user:password
Keterangan
Pengidentifikasi sumber daya seragam (URI) adalah representasi ringkas dari sumber daya yang tersedia untuk aplikasi Anda di intranet atau internet. Kelas Uri mendefinisikan properti dan metode untuk menangani URI, termasuk penguraian, perbandingan, dan penggabungan. Properti Uri kelas bersifat baca-saja; untuk membuat objek yang dapat dimodifikasi, gunakan UriBuilder kelas .
URI relatif (misalnya, "/baru/index.htm") harus diperluas sehubungan dengan URI dasar sehingga mutlak. Metode MakeRelativeUri ini disediakan untuk mengonversi URI absolut menjadi URI relatif jika diperlukan.
Uri Konstruktor tidak lolos dari string URI jika string adalah URI yang terbentuk dengan baik termasuk pengidentifikasi skema.
Properti Uri mengembalikan representasi data kanonis dalam pengodean yang lolos, dengan semua karakter dengan nilai Unicode lebih besar dari 127 diganti dengan ekuivalen heksadesimalnya. Untuk menempatkan URI dalam bentuk kanonis, Uri konstruktor melakukan langkah-langkah berikut:
- Mengonversi skema URI menjadi huruf kecil.
- Mengonversi nama host menjadi huruf kecil.
- Jika nama host adalah alamat IPv6, alamat IPv6 kanonis digunakan. ScopeId dan data IPv6 opsional lainnya dihapus.
- Menghapus nomor port bawaan dan yang kosong.
- Mengonversi jalur file implisit tanpa skema file:// (misalnya, "C:\my\file") ke jalur file eksplisit dengan skema file://.
- Karakter yang lolos (juga dikenal sebagai oktet yang dikodekan persen) yang tidak memiliki tujuan khusus didekodekan (juga dikenal sebagai unescaped). Karakter yang tidak dipesan ini mencakup huruf besar dan huruf kecil (%41-%5A dan %61-%7A), digit desimal (%30-%39), tanda hubung (%2D), titik (%2E), garis bawah (%5F), dan tilde (%7E).
- Mengkanonkan jalur untuk URI hierarkis dengan memadatkan urutan seperti
/./dan/../(apakah urutannya ter-escape atau tidak). Perhatikan bahwa ada beberapa skema yang urutannya tidak dikompresi. - Untuk URI hierarkis, jika host tidak dihentikan dengan garis miring (/), satu ditambahkan.
- Secara otomatis, setiap karakter khusus dalam URI di-escape sesuai dengan RFC 2396. Perilaku ini berubah jika Pengidentifikasi Sumber Daya Internasional atau penguraian Nama Domain Internasional diaktifkan, dalam hal ini karakter terlarang dalam URI di-escape sesuai dengan RFC 3986 dan RFC 3987.
Sebagai bagian dari kanonikalisasi dalam konstruktor untuk beberapa skema, dot-segmen (/./ dan /../) dipadatkan (dengan kata lain, mereka dihapus). Skema yang mendukung Uri segmentasi ringkas mencakup http, https, tcp, net.pipe, dan net.tcp. Untuk beberapa skema lain, urutan ini tidak dikompresi. Cuplikan kode berikut menunjukkan tampilan kompak dalam praktiknya. Urutan yang lolos tidak dilewati, jika perlu, lalu dipadatkan.
var uri = new Uri("http://myUrl/../.."); // http scheme, unescaped
OR
var uri = new Uri("http://myUrl/%2E%2E/%2E%2E"); // http scheme, escaped
OR
var uri = new Uri("ftp://myUrl/../.."); // ftp scheme, unescaped
OR
var uri = new Uri("ftp://myUrl/%2E%2E/%2E%2E"); // ftp scheme, escaped
Console.WriteLine($"AbsoluteUri: {uri.AbsoluteUri}");
Console.WriteLine($"PathAndQuery: {uri.PathAndQuery}");
Ketika kode ini dijalankan, kode ini mengembalikan output yang mirip dengan teks berikut.
AbsoluteUri: http://myurl/
PathAndQuery: /
Anda dapat mengubah konten kelas Uri dari referensi URI yang dikodekan dengan escape menjadi referensi URI yang dapat dibaca dengan metode ToString. Perhatikan bahwa beberapa karakter yang dicadangkan mungkin masih diabaikan dalam keluaran metode ToString. Ini untuk mendukung rekonstruksi URI yang tidak ambigu dari nilai yang dikembalikan oleh ToString.
Beberapa URI menyertakan pengidentifikasi fragmen atau kueri atau keduanya. Pengidentifikasi fragmen adalah teks apa pun yang mengikuti tanda angka (#), tidak termasuk tanda nomor; teks fragmen disimpan di Fragment properti . Informasi kueri adalah teks apa pun yang mengikuti tanda tanya (?) di URI; teks kueri disimpan di Query properti .
Note
Kelas URI mendukung penggunaan alamat IP dalam notasi quad untuk protokol IPv4 dan colon-hexadecimal untuk protokol IPv6. Ingatlah untuk mengapit alamat IPv6 dalam tanda kurung siku, seperti pada http://[::1].
Dukungan pengidentifikasi sumber daya internasional
Alamat web biasanya dinyatakan menggunakan URI yang terdiri dari sekumpulan karakter yang sangat terbatas:
- Huruf ASCII dari alfabet bahasa Inggris, termasuk huruf besar dan huruf kecil.
- Digit dari 0 hingga 9.
- Sejumlah kecil simbol ASCII lainnya.
Spesifikasi untuk URI didokumenkan dalam RFC 2396, RFC 2732, RFC 3986, dan RFC 3987 yang diterbitkan oleh Internet Engineering Task Force (IETF).
Pengidentifikasi yang memfasilitasi kebutuhan untuk mengidentifikasi sumber daya menggunakan bahasa selain bahasa Inggris dan mengizinkan karakter non-ASCII (karakter dalam set karakter Unicode/ISO 10646) dikenal sebagai Pengidentifikasi Sumber Daya Internasional (IR). Spesifikasi untuk IR didokumenkan dalam RFC 3987 yang diterbitkan oleh IETF. Menggunakan IRI memungkinkan URL berisi karakter Unicode. Normalisasi dan pemeriksaan karakter dilakukan sesuai dengan aturan IRI terbaru di RFC 3986 dan RFC 3987.
Pemrosesan IRI dan IDN di kelas dapat dikontrol Uri menggunakan System.Configuration.IriParsingElementkelas pengaturan konfigurasi , , System.Configuration.IdnElementdan System.Configuration.UriSection . Pengaturan System.Configuration.IriParsingElement mengaktifkan atau menonaktifkan pemrosesan IRI di kelas Uri. Pengaturan ini mengaktifkan atau menonaktifkan pemrosesan IDN di kelas System.Configuration.IdnElement.
Pengaturan konfigurasi untuk System.Configuration.IriParsingElement dan System.Configuration.IdnElement dibaca sekali ketika kelas pertama System.Uri dibangun. Perubahan pada pengaturan konfigurasi setelah waktu tersebut diabaikan.
Kelas System.GenericUriParser ini juga telah diperluas untuk memungkinkan pembuatan pengurai yang dapat disesuaikan yang mendukung IRI dan IDN. Perilaku System.GenericUriParser objek ditentukan dengan meneruskan kombinasi bitwise dari nilai yang tersedia dalam enumerasi System.GenericUriParserOptions ke konstruktor System.GenericUriParser. Jenis GenericUriParserOptions.IriParsing menunjukkan tipe pengurai mendukung aturan penguraian yang ditentukan dalam RFC 3987 untuk Pengidentifikasi Sumber Daya Internasional (IRI).
Jenis GenericUriParserOptions.Idn menunjukkan bahwa pengurai mendukung penguraian nama host dari Nama Domain Internasional (IDN). Di .NET (Core) dan .NET Framework 4.5+, IDN selalu digunakan. Di versi sebelumnya, opsi konfigurasi menentukan apakah IDN digunakan.
Dukungan jalur file implisit
Uri juga dapat digunakan untuk mewakili jalur sistem file lokal. Jalur ini dapat diwakili secara eksplisit dalam URI yang dimulai dengan skema file://, dan secara implisit dalam URI yang tidak memiliki skema file://. Sebagai contoh konkret, dua URI berikut valid, dan mewakili jalur file yang sama:
Uri uri1 = new Uri("C:/test/path/file.txt") // Implicit file path.
Uri uri2 = new Uri("file:///C:/test/path/file.txt") // Explicit file path.
Jalur file implisit ini tidak sesuai dengan spesifikasi URI dan harus dihindari jika memungkinkan. Saat menggunakan .NET Core pada sistem berbasis Unix, jalur file implisit dapat sangat bermasalah, karena jalur file implisit absolut tidak dapat dibedakan dari jalur relatif. Ketika ambiguitas tersebut ada, Uri default untuk menafsirkan jalur sebagai URI absolut.
Pertimbangan keamanan
Karena pertimbangan keamanan, aplikasi Anda perlu berhati-hati ketika menerima Uri instans dari sumber yang tidak tepercaya serta dengan dontEscape yang disetel ke true dalam konstruktor. Anda dapat memeriksa string URI untuk validitas dengan memanggil IsWellFormedOriginalString metode .
Saat berhadapan dengan input pengguna yang tidak tepercaya, konfirmasikan asumsi tentang instans yang baru dibuat Uri sebelum mempercayai propertinya.
Ini dapat dilakukan dengan cara berikut:
string userInput = ...;
Uri baseUri = new Uri("https://myWebsite/files/");
if (!Uri.TryCreate(baseUri, userInput, out Uri newUri))
{
// Fail: invalid input.
}
if (!baseUri.IsBaseOf(newUri))
{
// Fail: the Uri base has been modified - the created Uri is not rooted in the original directory.
}
Validasi ini dapat digunakan dalam berbagai situasi lain, seperti saat menangani jalur UNC, cukup dengan mengubah baseUri.
Uri baseUri = new Uri(@"\\host\share\some\directory\name\");
Untuk detail selengkapnya tentang desain dan pertimbangan Uri keamanan dan UriBuilder, tinjau dokumen model ancaman berikut:
Pertimbangan performa
Jika Anda menggunakan file Web.config yang berisi URI untuk menginisialisasi aplikasi Anda, waktu tambahan diperlukan untuk memproses URI jika pengidentifikasi skemanya bukan standar. Dalam kasus seperti itu, inisialisasi bagian aplikasi Anda yang terpengaruh saat URIs dibutuhkan, bukan saat startup.
Konstruktor
| Nama | Deskripsi |
|---|---|
| Uri(SerializationInfo, StreamingContext) |
Kedaluwarsa.
Menginisialisasi instans Uri baru kelas dari instans SerializationInfo dan StreamingContext kelas yang ditentukan. |
| Uri(String, Boolean) |
Kedaluwarsa.
Kedaluwarsa.
Kedaluwarsa.
Kedaluwarsa.
Menginisialisasi instans Uri baru kelas dengan URI yang ditentukan, dengan kontrol eksplisit dari pelepasan karakter. |
| Uri(String, UriCreationOptions) |
Menginisialisasi instans Uri baru kelas dengan URI yang ditentukan dan tambahan UriCreationOptions. |
| Uri(String, UriKind) |
Menginisialisasi instans Uri baru kelas dengan URI yang ditentukan. Konstruktor ini memungkinkan Anda menentukan apakah string URI adalah URI relatif, URI absolut, atau tidak ditentukan. |
| Uri(String) |
Menginisialisasi instans Uri baru kelas dengan URI yang ditentukan. |
| Uri(Uri, String, Boolean) |
Kedaluwarsa.
Kedaluwarsa.
Kedaluwarsa.
Kedaluwarsa.
Menginisialisasi instans Uri baru kelas berdasarkan URI dasar dan relatif yang ditentukan, dengan kontrol eksplisit dari pelepasan karakter. |
| Uri(Uri, String) |
Menginisialisasi instans Uri baru kelas berdasarkan URI dasar yang ditentukan dan string URI relatif. |
| Uri(Uri, Uri) |
Menginisialisasi instans Uri baru kelas berdasarkan kombinasi instans dasar Uri tertentu dan instans relatif Uri . |
Bidang
| Nama | Deskripsi |
|---|---|
| SchemeDelimiter |
Menentukan karakter yang memisahkan skema protokol komunikasi dari bagian alamat URI. Bidang ini hanya dapat dibaca. |
| UriSchemeData |
Menyediakan representasi objek dari pengidentifikasi sumber daya seragam (URI) dan akses mudah ke bagian URI. |
| UriSchemeFile |
Menentukan bahwa URI adalah penunjuk ke file. Bidang ini hanya dapat dibaca. |
| UriSchemeFtp |
Menentukan bahwa URI diakses melalui Protokol Transfer File (FTP). Bidang ini hanya dapat dibaca. |
| UriSchemeFtps |
Menentukan bahwa URI diakses melalui File Transfer Protocol Secure (FTPS). Bidang ini hanya dapat dibaca. |
| UriSchemeGopher |
Menentukan bahwa URI diakses melalui protokol Gopher. Bidang ini hanya dapat dibaca. |
| UriSchemeHttp |
Menentukan bahwa URI diakses melalui Protokol Transfer Hypertext (HTTP). Bidang ini hanya dapat dibaca. |
| UriSchemeHttps |
Menentukan bahwa URI diakses melalui Secure Hypertext Transfer Protocol (HTTPS). Bidang ini hanya dapat dibaca. |
| UriSchemeMailto |
Menentukan bahwa URI adalah alamat email dan diakses melalui Simple Mail Transport Protocol (SMTP). Bidang ini hanya dapat dibaca. |
| UriSchemeNetPipe |
Menentukan bahwa URI diakses melalui skema NetPipe yang digunakan oleh Windows Communication Foundation (WCF). Bidang ini hanya dapat dibaca. |
| UriSchemeNetTcp |
Menentukan bahwa URI diakses melalui skema NetTcp yang digunakan oleh Windows Communication Foundation (WCF). Bidang ini hanya dapat dibaca. |
| UriSchemeNews |
Menentukan bahwa URI adalah grup berita Internet dan diakses melalui Network News Transport Protocol (NNTP). Bidang ini hanya dapat dibaca. |
| UriSchemeNntp |
Menentukan bahwa URI adalah grup berita Internet dan diakses melalui Network News Transport Protocol (NNTP). Bidang ini hanya dapat dibaca. |
| UriSchemeSftp |
Menentukan bahwa URI diakses melalui Protokol Transfer File SSH (SFTP). Bidang ini hanya dapat dibaca. |
| UriSchemeSsh |
Menentukan bahwa URI diakses melalui protokol Secure Socket Shell (SSH). Bidang ini hanya dapat dibaca. |
| UriSchemeTelnet |
Menentukan bahwa URI diakses melalui protokol Telnet. Bidang ini hanya dapat dibaca. |
| UriSchemeWs |
Menentukan bahwa URI diakses melalui protokol WebSocket (WS). Bidang ini hanya dapat dibaca. |
| UriSchemeWss |
Menentukan bahwa URI diakses melalui protokol Aman WebSocket (WSS). Bidang ini hanya dapat dibaca. |
Properti
| Nama | Deskripsi |
|---|---|
| AbsolutePath |
Mendapatkan jalur absolut URI. |
| AbsoluteUri |
Mendapatkan URI absolut. |
| Authority |
Mendapatkan nama host atau alamat IP Sistem Nama Domain (DNS) dan nomor port untuk server. |
| DnsSafeHost |
Mendapatkan nama host yang, setelah tidak di-unescaped jika perlu, aman digunakan untuk resolusi DNS. |
| Fragment |
Mendapatkan fragmen URI yang lolos, termasuk karakter '#' utama jika tidak kosong. |
| Host |
Mendapatkan komponen host dari instans ini. |
| HostNameType |
Mendapatkan jenis nama host yang ditentukan dalam URI. |
| IdnHost |
Mendapatkan Nama Domain Internasional host yang sesuai dengan RFC 3490, menggunakan Punycode yang sesuai. String ini, setelah tidak dihapus jika perlu, aman digunakan untuk resolusi DNS. |
| IsAbsoluteUri |
Mendapatkan nilai yang menunjukkan apakah Uri instans bersifat absolut. |
| IsDefaultPort |
Mendapatkan nilai yang menunjukkan apakah nilai port URI adalah default untuk skema ini. |
| IsFile |
Mendapatkan nilai yang menunjukkan apakah yang ditentukan Uri adalah URI file. |
| IsLoopback |
Mendapatkan nilai yang menunjukkan apakah yang ditentukan mereferensikan Uri host lokal. |
| IsUnc |
Mendapatkan nilai yang menunjukkan apakah yang ditentukan Uri adalah jalur konvensi penamaan universal (UNC). |
| LocalPath |
Mendapatkan representasi sistem operasi lokal dari nama file. |
| OriginalString |
Mendapatkan string URI asli yang diteruskan ke Uri konstruktor. |
| PathAndQuery |
Mendapatkan properti dan AbsolutePath dipisahkan Query oleh tanda tanya (?). |
| Port |
Mendapatkan nomor port URI ini. |
| Query |
Mendapatkan informasi kueri apa pun yang disertakan dalam URI yang ditentukan, termasuk karakter '?' utama jika tidak kosong. |
| Scheme |
Mendapatkan nama skema untuk URI ini. |
| Segments |
Mendapatkan array yang berisi segmen jalur yang membentuk URI yang ditentukan. |
| UserEscaped |
Mendapatkan nilai yang menunjukkan apakah string URI benar-benar lolos sebelum Uri instans dibuat. |
| UserInfo |
Mendapatkan nama pengguna, kata sandi, atau informasi spesifik pengguna lainnya yang terkait dengan URI yang ditentukan. |
Metode
| Nama | Deskripsi |
|---|---|
| Canonicalize() |
Kedaluwarsa.
Kedaluwarsa.
Kedaluwarsa.
Mengonversi URI yang disimpan secara internal ke bentuk kanonis. |
| CheckHostName(String) |
Menentukan apakah nama host yang ditentukan adalah nama DNS yang valid. |
| CheckSchemeName(String) |
Menentukan apakah nama skema yang ditentukan valid. |
| CheckSecurity() |
Kedaluwarsa.
Kedaluwarsa.
Kedaluwarsa.
Memanggil metode ini tidak berpengaruh. |
| Compare(Uri, Uri, UriComponents, UriFormat, StringComparison) |
Membandingkan bagian yang ditentukan dari dua URI menggunakan aturan perbandingan yang ditentukan. |
| CreateObjRef(Type) |
Membuat objek yang berisi semua informasi relevan yang diperlukan untuk menghasilkan proksi yang digunakan untuk berkomunikasi dengan objek jarak jauh. (Diperoleh dari MarshalByRefObject) |
| Equals(Object) |
Membandingkan dua Uri instans untuk kesetaraan. |
| Equals(Uri) |
Membandingkan dua Uri instans untuk kesetaraan. |
| Escape() |
Kedaluwarsa.
Kedaluwarsa.
Kedaluwarsa.
Mengonversi karakter yang tidak aman atau dicadangkan dalam komponen jalur ke representasi karakter heksadesimalnya. |
| EscapeDataString(ReadOnlySpan<Char>) |
Mengonversi rentang ke representasi yang lolos. |
| EscapeDataString(String) |
Mengonversi string ke representasi yang lolos. |
| EscapeString(String) |
Kedaluwarsa.
Kedaluwarsa.
Kedaluwarsa.
Kedaluwarsa.
Mengonversi string ke representasi yang lolos. |
| EscapeUriString(String) |
Kedaluwarsa.
Kedaluwarsa.
Mengonversi string URI ke representasi yang lolos. |
| FromHex(Char) |
Mendapatkan nilai desimal dari digit heksadesimal. |
| GetComponents(UriComponents, UriFormat) |
Mendapatkan komponen yang ditentukan dari instans saat ini menggunakan pelepasan yang ditentukan untuk karakter khusus. |
| GetHashCode() |
Mendapatkan kode hash untuk URI. |
| GetLeftPart(UriPartial) |
Mendapatkan bagian instans yang Uri ditentukan. |
| GetLifetimeService() |
Kedaluwarsa.
Mengambil objek layanan seumur hidup saat ini yang mengontrol kebijakan seumur hidup untuk instans ini. (Diperoleh dari MarshalByRefObject) |
| GetObjectData(SerializationInfo, StreamingContext) |
Mengembalikan data yang diperlukan untuk menserialisasikan instans saat ini. |
| GetType() |
Mendapatkan Type instans saat ini. (Diperoleh dari Object) |
| HexEscape(Char) |
Mengonversi karakter tertentu menjadi setara heksadesimalnya. |
| HexUnescape(String, Int32) |
Mengonversi representasi heksadesimal karakter tertentu ke karakter. |
| InitializeLifetimeService() |
Kedaluwarsa.
Mendapatkan objek layanan seumur hidup untuk mengontrol kebijakan seumur hidup untuk instans ini. (Diperoleh dari MarshalByRefObject) |
| IsBadFileSystemCharacter(Char) |
Kedaluwarsa.
Kedaluwarsa.
Kedaluwarsa.
Menunjukkan apakah karakter tidak valid dalam nama sistem file. |
| IsBaseOf(Uri) |
Menentukan apakah instans saat ini Uri adalah dasar dari instans yang ditentukan Uri . |
| IsExcludedCharacter(Char) |
Kedaluwarsa.
Kedaluwarsa.
Kedaluwarsa.
Menentukan apakah karakter yang ditentukan harus diloloskan. |
| IsHexDigit(Char) |
Menentukan apakah karakter yang ditentukan adalah digit heksadesimal yang valid. |
| IsHexEncoding(String, Int32) |
Menentukan apakah karakter dalam string dikodekan heksadesimal. |
| IsReservedCharacter(Char) |
Kedaluwarsa.
Kedaluwarsa.
Kedaluwarsa.
Menentukan apakah karakter yang ditentukan adalah karakter yang dipesan. |
| IsWellFormedOriginalString() |
Menunjukkan apakah string yang digunakan untuk membangun ini Uri terbentuk dengan baik dan tidak memerlukan pelepasan lebih lanjut. |
| IsWellFormedUriString(String, UriKind) |
Menunjukkan apakah string terbentuk dengan baik dengan mencoba membuat URI dengan string dan memastikan bahwa string tidak memerlukan pelepasan lebih lanjut. |
| MakeRelative(Uri) |
Kedaluwarsa.
Kedaluwarsa.
Kedaluwarsa.
Kedaluwarsa.
Menentukan perbedaan antara dua Uri instans. |
| MakeRelativeUri(Uri) |
Menentukan perbedaan antara dua Uri instans. |
| MemberwiseClone() |
Membuat salinan dangkal dari Objectsaat ini. (Diperoleh dari Object) |
| Parse() |
Kedaluwarsa.
Kedaluwarsa.
Kedaluwarsa.
Mengurai URI instans saat ini untuk memastikannya berisi semua bagian yang diperlukan untuk URI yang valid. |
| ToString() |
Mendapatkan representasi string kanonis untuk instans yang ditentukan Uri . |
| TryCreate(String, UriCreationOptions, Uri) |
Membuat baru Uri menggunakan instans yang ditentukan String dan UriCreationOptions. |
| TryCreate(String, UriKind, Uri) |
Membuat baru Uri menggunakan instans yang ditentukan String dan UriKind. |
| TryCreate(Uri, String, Uri) |
Membuat baru Uri menggunakan instans dasar dan relatif String yang ditentukan. |
| TryCreate(Uri, Uri, Uri) |
Membuat baru Uri menggunakan instans dasar dan relatif Uri yang ditentukan. |
| TryEscapeDataString(ReadOnlySpan<Char>, Span<Char>, Int32) |
Mencoba mengonversi rentang ke representasi yang lolos. |
| TryFormat(Span<Char>, Int32) |
Mencoba memformat representasi string kanonis untuk Uri instans ke dalam rentang yang ditentukan. |
| TryUnescapeDataString(ReadOnlySpan<Char>, Span<Char>, Int32) |
Mencoba mengonversi rentang ke representasi yang tidak dilewati. |
| Unescape(String) |
Kedaluwarsa.
Kedaluwarsa.
Kedaluwarsa.
Mengonversi string yang ditentukan dengan mengganti urutan escape apa pun dengan representasi yang tidak diescaped. |
| UnescapeDataString(ReadOnlySpan<Char>) |
Mengonversi rentang ke representasi yang tidak dilewati. |
| UnescapeDataString(String) |
Mengonversi string ke representasi yang tidak dilewati. |
Operator
| Nama | Deskripsi |
|---|---|
| Equality(Uri, Uri) |
Menentukan apakah dua Uri instans memiliki nilai yang sama. |
| Inequality(Uri, Uri) |
Menentukan apakah dua Uri instans tidak memiliki nilai yang sama. |
Implementasi Antarmuka Eksplisit
| Nama | Deskripsi |
|---|---|
| IFormattable.ToString(String, IFormatProvider) |
Memformat nilai instans saat ini menggunakan format yang ditentukan. |
| ISerializable.GetObjectData(SerializationInfo, StreamingContext) |
Mengembalikan data yang diperlukan untuk menserialisasikan instans saat ini. |
| ISpanFormattable.TryFormat(Span<Char>, Int32, ReadOnlySpan<Char>, IFormatProvider) |
Mencoba memformat nilai instans saat ini ke dalam rentang karakter yang disediakan. |
Berlaku untuk
Keamanan Thread
Semua anggota Uri aman utas dan dapat digunakan secara bersamaan dari beberapa utas.
Lihat juga
- IdnElement
- IriParsingElement
- UriSection
- DnsSafeHost
- MakeRelative(Uri)
- IsWellFormedOriginalString()
- UriBuilder
- Perubahan pada namespace System.Uri di Versi 2.0
- Dukungan Pengidentifikasi Sumber Daya Internasional di System.UriSystem.Uri
- Pemrograman Jaringan dalam .NET Framework
- Model ancaman System.Uri
- Model ancaman UriBuilder Sistem