我们有自己的工具来创建我们的 web api 文档。它读取///
评论并从中创建文档。但是我们有一个奇怪的问题:表达式typeof(HttpResponseMessage)
奇怪地计算为null
. 为什么会发生这种情况?
澄清一下:当我们在运行时读取程序集并创建文档时,我们有HttpResponseMessage
一些MethodInfo.ReturnType
API 方法。这个工作没有问题。但是当我们尝试检查类型是否为HttpResponseMessage
时,我们会这样做if(methodInfo.ReturnType == typeof(HttpResponseMessage)
,并且这里 if 的右侧总是计算为null
。当我在 Visual Studio 调试器中运行它并写入typeof(HttpResponseMessage)
Watch 窗口时,它的计算结果null
也为。
(类型在 中定义System.Net.Http
。)
截图清楚地显示了typeof在程序和Watch窗口中都返回null,但parameterType变量实际上指向该类的类型对象。它是一个普通的 Win32 控制台应用程序。