오늘 밟은 함정인데, System.Uri
클래스의 Equals()
메서드는 UserInfo
및 Fragment
를 제외하고 비교를 하더군요… 따라서 https://example.com/#foo
와 https://example.com/#bar
가 같은 URI로 취급됩니다.
이를 원치 않으면 uri.Equals(other) && uri.UserInfo == other.UserInfo && uri.Fragment == other.Fragment
와 같이 추가적인 비교를 따로 코딩할 수밖에 없습니다.
왜 이렇게 만들었는지 얼핏 알 것도 같지만 모르고 버그 만들기 십상이네요. 다른 분들은 겪지 마시라고 공유해 봅니다. (이런 건 자유게시판에 올리는 게 맞나요?)