PropertyInfo.DeclaringType真的可以为null吗?

时间:2016-02-08 09:20:06

标签: c# reflection resharper

我使用的是ReSharper(旧版本),当我使用PropertyInfo.DeclaringType null时,它曾用来警告我。

第一眼和第二眼看来,这对我没有意义。这是真的,还是ReSharper有点愚蠢,并没有注意到它是PropertyInfo,而不是一般MemberInfo

2 个答案:

答案 0 :(得分:8)

PropertyInfo.DeclaringType属性继承自MemberInfo.DeclaringTypedocumentation

  

如果MemberInfo对象是全局成员(即,如果是   从Module.GetMethods方法获得,返回全局   模块上的方法),返回的DeclaringType将为null

因此,在这种情况下警告似乎很好。

答案 1 :(得分:5)

如果在模块中定义属性,则可以是null。在C#中,如果没有反射,则无法定义此类方法和属性(请参阅PropertyBuilder)。但是,如果您引用VB.NET程序集,它可以有这样的成员。