Con*_*ell 16 c# asp.net-mvc resharper
我的一个ASP.NET MVC Controller类中有一个简单的属性.

我以前见过很多次,所以要明白这个消息的含义,但通常它是完全合理的.但是,这不是.要获得带下划线的语句,User必须不为null,因此检查User.Identity是正常的.
该Identity属性是IPrincipal接口的一部分,并返回一个继承的对象IIdentity.
要继承此接口或任何接口,此属性必须是引用类型,因此可能为null,对吧?
那么为什么我心爱的ReSharper呻吟?
bit*_*onk 17
你说你正在使用GenericPrinciple该实现IPrincipal.对于这个类,该Identity属性确实永远不会null.如果你看一下源代码很容易看到(例如使用JetBrains dotPeek).
您可以感谢ReSharper的.NET框架类库的代码注释.
在我的ReSharper 6.1注释中,有与此相关的单个代码注释(在文件ExternalAnnotations\mscorlib\mscorlib.4.0.0.0.Nullness.Generated.xml中):
<member name="M:System.Security.Principal.GenericPrincipal.#ctor(System.Security.Principal.IIdentity,System.String[])">
<parameter name="identity">
<attribute ctor="M:JetBrains.Annotations.NotNullAttribute.#ctor" />
</parameter>
</member>
Run Code Online (Sandbox Code Playgroud)
这只是针对构造函数,我还没有为该Identity属性找到一个.因此要么您正在使用具有该属性注释的ReSharper版本,要么ReSharper正在进行一些额外的分析.
无论如何,ReSharper很聪明(而且正确!).
| 归档时间: |
|
| 查看次数: |
795 次 |
| 最近记录: |