/// <summary> /// Takes the name of the given type and makes it friendly for serialization /// by removing problematic characters. /// </summary> public static string SerializationFriendlyName(this Type t) { return(TypeToNameLookup.GetOrAdd(t, type => { var index = t.Name.IndexOf('`'); if (index >= 0) { var result = t.Name.Substring(0, index) + "Of"; var args = t.GetGenericArguments(); for (var i = 0; i < args.Length; i++) { result += args[i].SerializationFriendlyName(); if (i != args.Length - 1) { result += "And"; } } if (args.Length == 2) { if (typeof(KeyValuePair <,>).MakeGenericType(args[0], args[1]) == t) { result = "NServiceBus." + result; } } return result; } return type.Name; })); }
/// <summary> /// Takes the name of the given type and makes it friendly for serialization /// by removing problematic characters. /// </summary> public static string SerializationFriendlyName(this Type t) { lock (TypeToNameLookup) { string typeName; if (TypeToNameLookup.TryGetValue(t, out typeName)) { return(typeName); } } var index = t.Name.IndexOf('`'); if (index >= 0) { var result = t.Name.Substring(0, index) + "Of"; var args = t.GetGenericArguments(); for (var i = 0; i < args.Length; i++) { result += args[i].SerializationFriendlyName(); if (i != args.Length - 1) { result += "And"; } } if (args.Length == 2) { if (typeof(KeyValuePair <,>).MakeGenericType(args) == t) { result = "NServiceBus." + result; } } lock (TypeToNameLookup) TypeToNameLookup[t] = result; return(result); } lock (TypeToNameLookup) TypeToNameLookup[t] = t.Name; return(t.Name); }
/// <summary> /// Takes the name of the given type and makes it friendly for serialization /// by removing problematic characters. /// </summary> /// <param name="t"></param> /// <returns></returns> public static string SerializationFriendlyName(this Type t) { lock (TypeToNameLookup) if (TypeToNameLookup.ContainsKey(t)) { return(TypeToNameLookup[t]); } var args = t.GetGenericArguments(); if (args != null) { int index = t.Name.IndexOf('`'); if (index >= 0) { string result = t.Name.Substring(0, index) + "Of"; for (int i = 0; i < args.Length; i++) { result += args[i].SerializationFriendlyName(); if (i != args.Length - 1) { result += "And"; } } if (args.Length == 2) { if (typeof(KeyValuePair <,>).MakeGenericType(args) == t) { result = "LightRail.ServiceBus.Serialization." + result; } } lock (TypeToNameLookup) TypeToNameLookup[t] = result; return(result); } } lock (TypeToNameLookup) TypeToNameLookup[t] = t.Name; return(t.Name); }