Одна из причин того, что дочерние объекты не создаются автоматически, заключается в том, что вам может не потребоваться вызывать конструктор по умолчанию или даже вы хотите заставить программиста вызывать конструктор с достаточным количеством параметров, чтобы правильно инициализировать класс полностью, поэтому не является общедоступным конструктором по умолчанию.
Можно утверждать, что если есть конструктор по умолчанию, он всегда должен запускаться, а затем тот, который вам действительно нужен, но затем вы выполняете ту же работу дважды.
public class CustomerResult
{
public string CompanyStatus { get; set; }
public OverallResult Result { get; set; }
}
public class OverallResult
{
public OverallResult()
{
StatusCode = 55;
StatusDescription = "Nothing to see";
}
public OverallResult(int statusCode, string status)
{
StatusCode = statusCode;
StatusDescription = status;
}
public string StatusDescription { get; set; }
public int StatusCode { get; set; }
public string CustomerId { get; set; }
}
void main()
{
var result = new CustomerResult()
{
Result = new OverallResult(51, "Blah"),
};
}