/***************************************************/ /**** Public Methods ****/ /***************************************************/ public static string Url(this Type type) { if (type == null) { return(null); } Assembly ass = type.Assembly; if (ass == null) { return(null); } AssemblyUrlAttribute att = ass.GetCustomAttribute <AssemblyUrlAttribute>(); if (att == null) { return(null); } string url = att.Url; if (url == "") { return(null); } List <string> path = new List <string>() { url, "blob/master/" }; path.Add(ass.GetName().Name); path.AddRange(type.Namespace.Split('.').Skip(3)); if (type.IsEnum) { path.Add("Enums"); } else if (type.IsInterface) { path.Add("Interface"); } path.Add(type.Name + ".cs"); url = System.IO.Path.Combine(path.ToArray()); return(url); }
/***************************************************/ public static string Url(this MethodBase method) { if (method == null) { return(null); } Assembly ass = method.DeclaringType.Assembly; if (ass == null) { return(null); } AssemblyUrlAttribute att = ass.GetCustomAttribute <AssemblyUrlAttribute>(); if (att == null) { return(null); } string url = att.Url; List <string> path = new List <string>() { url, "blob/master/" }; path.Add(ass.GetName().Name); path.AddRange(method.DeclaringType.Namespace.Split('.').Skip(3)); path.Add(method.DeclaringType.Name); path.Add(method.Name + ".cs"); url = System.IO.Path.Combine(path.ToArray()); return(url); }