1

如果我有一个具有其他嵌套对象和属性的对象,如下所示。

var request = new GetInfoRequest
{
   GetInformation = new GetInformationType
   {
      Code = "abc",
      Id = "123",
      Item = new InfoItem
      {
         Itemid = "test",
         ItemName = "testname"
      },
      StartDate = new StartdatumType { Start = new DateTime(1990, 1, 1)},
      EndDate = new EndDateType { End = new DateTime.Now }    
   }
};

将此对象传递给函数时,我想检查其属性或对象是否为null.

public InfoResponse getInfo(request)
{
  // Check that the request object has no null properties or objects.
}

有没有比使用 if 语句遍历每个子对象和属性更简单的检查方法?递归方法或类似方法?

扩展
在我的getInfo函数中,我不想这样写:

if (request != null && request.GetInformation != null && ... etc.)
4

2 回答 2

2

使用反射并遍历所有属性以检查是否为空。这是一个开始的片段

using System.Reflection;

GetInfoRequest objGetInfoRequest;
Type getInfoRequestType = objGetInfoRequest.GetType();
PropertyInfo[] myProps = getInfoRequestType.GetProperties();
于 2012-09-27T12:47:59.573 回答
0

您可以使用反射来遍历字段。

您需要对嵌套值进行一些递归。

于 2012-09-27T12:20:30.883 回答