Проблема со сравнением строк 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 выше??

большое спасибо

0 ответов

Другие вопросы по тегам