如何检查属性是否存在

szp*_*pic 3 c#

我想读取性能DirectoryEntry.不幸的是并非所有的记录都有employeeNumber财产,所以我需要检查它是否存在.我已经尝试过:

a == one DirectoryEntry record
a.GetType().GetProperty("employeeNumber")==null //always returns true
String.IsNullOrWhiteSpace(a.Properties["employeeNumber"].ToString()) //exception
Run Code Online (Sandbox Code Playgroud)

我还能尝试什么?

Rah*_*thi 9

你可以尝试这样:

OBJECT.GetType().GetProperty("PROPERTY") != null
Run Code Online (Sandbox Code Playgroud)

所以在你的代码中它会像:

var a = one DirectoryEntry record;
var pi = a.GetType().GetProperty("employeeNumber");
var value = pi.GetValue(a, null);
Run Code Online (Sandbox Code Playgroud)

编辑:-

试试这个:

bool x = a.Properties.Contains("employeeNumber");
Run Code Online (Sandbox Code Playgroud)

  • 这不是关于反思.这是关于Active Directory. (2认同)