2020年12月04日(金) [長年日記]
■ [c#] System.UriクラスのIsBaseOf()の振る舞い
System.Uri.IsBaseOf()の仕様が、リファレンスを読んでもいつもよくわからなくなるのでメモ。
- URIの最後のスラッシュより後ろを削除したもの同士を比較している
と考えればいいみたい。比較の際にbaseにする方のURIからも後半が削除されるから混乱するんだと思う。
> var b = new Uri("http://host/path/file?query"); > b.IsBaseOf(new Uri("http://host/path/abc/def/")) true > b.IsBaseOf(new Uri("http://host/path/abc")) true > b.IsBaseOf(new Uri("http://host/path/")) true > b.IsBaseOf(new Uri("http://host/path")) false