5

我在 Mono 中(在 unix 系统下)创建了一个 Uri 对象,这非常简单(就像在 VStudio/Windows 中一样):new 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) 下是如何工作的,最重要的是,我怎样才能在 Mono 中创建一个有效的 Uri 来通过上面的 if 语句的验证?

多谢

4

0 回答 0