private static string GetMappingAsString(ContainerRegistration registration) { // code from https://msdn.microsoft.com/en-us/library/dn178463(v=pandp.30).aspx var registeredType = registration.RegisteredType; var registeredTypeName = registeredType.Name + UnityExtensions.GetGenericArgumentsList(registeredType); var mappedToType = registration.MappedToType; var mapToTypeName = mappedToType.Name + UnityExtensions.GetGenericArgumentsList(mappedToType); var registrationName = registration.Name ?? "[default]"; var lifetime = registration.LifetimeManagerType.Name; if (mapToTypeName != registeredTypeName) { mapToTypeName = $" -> {mapToTypeName}"; } else { mapToTypeName = string.Empty; } return($"+ {registeredTypeName}{mapToTypeName} '{registrationName}' {lifetime}"); }
public static string GetMappingAsString(this IUnityContainer unityContainer) { // code from https://msdn.microsoft.com/en-us/library/dn178463(v=pandp.30).aspx var stringBuilder = new StringBuilder(); stringBuilder.AppendLine($"Container has {unityContainer.Registrations.Count()} Registrations:"); foreach (ContainerRegistration registration in unityContainer.Registrations) { stringBuilder.AppendLine(UnityExtensions.GetMappingAsString(registration)); } return(stringBuilder.ToString()); }
private static string GetGenericArgumentsList(Type type) { // code from https://msdn.microsoft.com/en-us/library/dn178463(v=pandp.30).aspx if (type.GetGenericArguments().Length == 0) { return(string.Empty); } var arglist = string.Empty; var first = true; foreach (Type genericArgumentType in type.GetGenericArguments()) { arglist += first ? genericArgumentType.Name : $", {genericArgumentType.Name}"; first = false; if (genericArgumentType.GetGenericArguments().Length > 0) { arglist += UnityExtensions.GetGenericArgumentsList(genericArgumentType); } } return($"<{arglist}>"); }