6

System.Uri で空のパス コンポーネントを含む URL を表すことは可能ですか?

私が作成するたびに

new Uri("http://example.com")

.Net (4) は、末尾にスラッシュを追加することを主張しているようで、それによって別の URL が作成されます。言い換えると、

new Uri("http://example.com").ToString()

「 http://example.com/」を返し、

new Uri("http://example.com").Equals(new Uri("http://example.com/")) == true

この壊れた動作 (RFC 3986 による) を抑制することはできますか、それとも独自のクラスを作成する必要がありますか?

アップデート:

セクション6.2.3でこれを見逃したようです:

一般に、空のパスを持つ機関の一般的な構文を使用する URI は、
「/」のパスに正規化する必要があります。

ただし、文言はこれがオプションであることを示しています。そこで疑問が残ります: Uri にこれを行わせないようにすることはできますか?

4

1 に答える 1

2

OriginalString.NET 2.0 以降、 propertyを介してコンストラクターに渡された元の文字列を取得できます。Uriオブジェクトがシリアル化されると、元の文字列は失われます。

これがあなたの望むものでない場合、助けはありません。メソッドは常に正規化されたバージョンを使用しますEqualsToString

于 2014-02-02T03:43:29.173 に答える