public void WriteConstructionLog(ConstructionLogContext context) { context.WriteIndent(); if (ContainerService != null) { context.UsedFromDependency = this; ContainerService.WriteConstructionLog(context); return; } if (Status != ServiceStatus.Ok) context.Writer.WriteMeta("!"); context.Writer.WriteName(Name); if (Comment != null && Status != ServiceStatus.Error) { context.Writer.WriteMeta(" - "); context.Writer.WriteMeta(Comment); } if (Status == ServiceStatus.Ok && constantKind.HasValue) { if (constantKind == ConstantKind.Value) ValueFormatter.WriteValue(context, Value, true); if (constantKind == ConstantKind.Resource) context.Writer.WriteMeta(string.Format(" resource [{0}]", resourceName)); } if (Status == ServiceStatus.Error) context.Writer.WriteMeta(" <---------------"); context.Writer.WriteNewLine(); }
public static void WriteValue(ConstructionLogContext context, object value, bool isTop) { var formattedValue = FormatAsSimpleType(value, context); if (formattedValue != null) { if (isTop && value != null && context.ValueFormatters.ContainsKey(value.GetType())) { context.Writer.WriteMeta(" const"); } context.Writer.WriteMeta(" -> " + formattedValue); return; } if (isTop) { context.Writer.WriteMeta(" const"); } context.Indent++; var enumerable = value as IEnumerable; if (enumerable == null) { var properties = value.GetType() .GetProperties(BindingFlags.Public | BindingFlags.Instance) .Where(x => x.CanRead && (x.CanWrite || IsAutoProperty(x))) .ToArray(); if (properties.Length > 0) { WriteMembers(context, properties, value); } else { WriteMembers(context, value.GetType().GetFields(BindingFlags.Public | BindingFlags.Instance), value); } } else { foreach (var item in enumerable) { context.Writer.WriteNewLine(); context.WriteIndent(); formattedValue = FormatAsSimpleType(item, context); if (formattedValue == null) { context.Writer.WriteName("item"); WriteValue(context, item, false); } else { context.Writer.WriteMeta(formattedValue); } } } context.Indent--; }
private static void WriteMembers(ConstructionLogContext context, IEnumerable <MemberInfo> members, object value) { foreach (var m in members) { var propVal = m is FieldInfo ? ((FieldInfo)m).GetValue(value) : ((PropertyInfo)m).GetValue(value); context.Writer.WriteNewLine(); context.WriteIndent(); context.Writer.WriteName(m.Name); WriteValue(context, propVal, false); } }
private static void WriteMembers(ConstructionLogContext context, IEnumerable<MemberInfo> members, object value) { foreach (var m in members) { var propVal = m is FieldInfo ? ((FieldInfo) m).GetValue(value) : ((PropertyInfo) m).GetValue(value); context.Writer.WriteNewLine(); context.WriteIndent(); context.Writer.WriteName(m.Name); WriteValue(context, propVal, false); } }
public static void WriteValue(ConstructionLogContext context, object value, bool isTop) { var formattedValue = FormatAsSimpleType(value, context); if (formattedValue != null) { if (isTop && value != null && context.ValueFormatters.ContainsKey(value.GetType())) context.Writer.WriteMeta(" const"); context.Writer.WriteMeta(" -> " + formattedValue); return; } if (isTop) context.Writer.WriteMeta(" const"); context.Indent++; var enumerable = value as IEnumerable; if (enumerable == null) { var properties = value.GetType() .GetProperties(BindingFlags.Public | BindingFlags.Instance) .Where(x => x.CanRead && (x.CanWrite || IsAutoProperty(x))) .ToArray(); if (properties.Length > 0) WriteMembers(context, properties, value); else WriteMembers(context, value.GetType().GetFields(BindingFlags.Public | BindingFlags.Instance), value); } else foreach (var item in enumerable) { context.Writer.WriteNewLine(); context.WriteIndent(); formattedValue = FormatAsSimpleType(item, context); if (formattedValue == null) { context.Writer.WriteName("item"); WriteValue(context, item, false); } else context.Writer.WriteMeta(formattedValue); } context.Indent--; }
public void WriteConstructionLog(ConstructionLogContext context) { context.WriteIndent(); if (ContainerService != null) { context.UsedFromDependency = this; ContainerService.WriteConstructionLog(context); return; } if (Status != ServiceStatus.Ok) { context.Writer.WriteMeta("!"); } context.Writer.WriteName(Name); if (Comment != null && Status != ServiceStatus.Error) { context.Writer.WriteMeta(" - "); context.Writer.WriteMeta(Comment); } if (Status == ServiceStatus.Ok && constantKind.HasValue) { if (constantKind == ConstantKind.Value) { ValueFormatter.WriteValue(context, Value, true); } if (constantKind == ConstantKind.Resource) { context.Writer.WriteMeta(string.Format(" resource [{0}]", resourceName)); } } if (Status == ServiceStatus.Error) { context.Writer.WriteMeta(" <---------------"); } context.Writer.WriteNewLine(); }
private void WriteValue(ConstructionLogContext context) { string formattedValue; if (TryFormat(Value, context, out formattedValue)) { context.Writer.WriteMeta(" -> " + formattedValue); return; } var enumerable = Value as IEnumerable; if (enumerable != null) { context.Indent++; foreach (var item in enumerable) { if (!TryFormat(item, context, out formattedValue)) formattedValue = "?"; context.Writer.WriteNewLine(); context.WriteIndent(); context.Writer.WriteMeta(formattedValue); } context.Indent--; return; } context.Indent++; foreach (var prop in Value.GetType().GetProperties()) { if (!prop.CanRead) continue; var propVal = prop.GetValue(Value, null); if (!TryFormat(propVal, context, out formattedValue)) continue; context.Writer.WriteNewLine(); context.WriteIndent(); context.Writer.WriteName(prop.Name); context.Writer.WriteMeta(" -> " + formattedValue); } context.Indent--; }
public void WriteConstructionLog(ConstructionLogContext context) { context.WriteIndent(); if (ContainerService != null) { context.UsedFromDependency = this; ContainerService.WriteConstructionLog(context); return; } if (Status != ServiceStatus.Ok) context.Writer.WriteMeta("!"); context.Writer.WriteName(Name); if (Comment != null && Status != ServiceStatus.Error) { context.Writer.WriteMeta(" - "); context.Writer.WriteMeta(Comment); } if (Status == ServiceStatus.Ok && constantKind.HasValue) { if (constantKind == ConstantKind.Value) { if (Value == null || Value.GetType().IsSimpleType()) context.Writer.WriteMeta(" -> " + InternalHelpers.DumpValue(Value)); else { context.Writer.WriteMeta(" const"); WriteValue(context); } } if (constantKind == ConstantKind.Resource) context.Writer.WriteMeta(string.Format(" resource [{0}]", resourceName)); } if (Status == ServiceStatus.Error) context.Writer.WriteMeta(" <---------------"); context.Writer.WriteNewLine(); }