本文介绍了GetProperty方法返回null C#.Net的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

有人可以解释一下,为什么System.Type中的GetProperty方法对于声明为内部但适用于公共的属性返回null。

Can someone please explain, why does the GetProperty method in System.Type returns null for properties that are declared as 'internal' but works for 'public'.

internal class Test{
  public string ALocal { get; set; }
  internal string SLocal { get; set; }}

var test = new Test();
var testType = test.GetType();

var aProp = testType.GetProperty("ALocal"); => returns string Type
var sProp = testType.GetProperty("SLocal"); => returns null

我了解内部修饰符或公共修饰符之间的区别。

I understand differences between internal or public modifiers.

推荐答案

GetProperty方法默认情况下仅返回公共属性。
您应包括以下标志

GetProperty Method returns only public properties by default.You should include following flags

BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.Static

获取内部类型

MSDN:

这篇关于GetProperty方法返回null C#.Net的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

09-15 13:31