Проблема со сравнением строк ReferenceEquals в Mono
Я создаю объект Uri в Mono (в системе Unix), это очень просто (как в VStudio/Windows): новый Uri (" http://my.url_here.com/"). Затем я создаю другой системный объект, который использует Uri: HttpSelfHostConfiguration().
В исходном коде HttpSelfHostConfiguration полученный Uri будет проверен с использованием следующего оператора if (проверено в источниках Mono):
if (!ReferenceEquals(baseAddress.Scheme, Uri.UriSchemeHttp) && !ReferenceEquals(baseAddress.Scheme, Uri.UriSchemeHttps))
{
throw Error.ArgumentUriNotHttpOrHttpsScheme("baseAddress", baseAddress);
}
и "if" не выполняется, потому что "ReferenceEquals(baseAddress.Scheme, Uri.UriSchemeHttp)" возвращает false, это означает, что для Mono (работает в Unix) baseAddress.Scheme не равно Uri.UriSchemeHttp.
Обратите внимание, что подтверждена отладка в Mono(Unix), что: baseAddress.Scheme = "http" и Uri.UriSchemeHttp = "http".
Под VStudio это работает отлично.
Может кто-нибудь помочь мне понять, как ReferenceEqual работает в Mono(Unix) и, самое главное, как я могу создать действительный Uri в Mono, который проходит проверку с помощью оператора if выше??
большое спасибо