internal void ValidateConfig()
{
var roots = new List<object>();
foreach (LoggingRule r in this.LoggingRules)
{
roots.Add(r);
}
foreach (Target target in this.targets.Values)
{
roots.Add(target);
}
this.configItems = ObjectGraphScanner.FindReachableObjects<object>(roots.ToArray());
// initialize all config items starting from most nested first
// so that whenever the container is initialized its children have already been
InternalLogger.Info("Found {0} configuration items", this.configItems.Length);
foreach (object o in this.configItems)
{
PropertyHelper.CheckRequiredParameters(o);
}
}