internal static string BasePathSanitizer(this IRouteScanner scanner, string basepath) { var memberInfo = scanner.GetType(); var method = memberInfo?.GetMethod("SanitizeBasePath", BindingFlags.Static | BindingFlags.NonPublic); return((string)method.Invoke(null, new object[] { basepath })); }
internal static bool CheckIsIncluded(this IRouteScanner scanner, Assembly assembly) { var memberInfo = scanner.GetType(); var method = memberInfo?.GetMethod("IsIncluded", BindingFlags.Instance | BindingFlags.NonPublic, null, new[] { typeof(Assembly) }, null); return((bool)method.Invoke(scanner, new object[] { assembly })); }
internal static string PathInfoGenerator(this IRouteScanner scanner, string pathinfo, string basepath) { var memberInfo = scanner.GetType(); var method = memberInfo?.GetMethod("GeneratePathInfo", BindingFlags.Static | BindingFlags.NonPublic); return((string)method.Invoke(null, new object[] { pathinfo, basepath })); }
internal static bool CheckIsInScope(this IRouteScanner scanner, Type type) { var memberInfo = scanner.GetType(); var method = memberInfo?.GetMethod("IsInScope", BindingFlags.Instance | BindingFlags.NonPublic); return((bool)method.Invoke(scanner, new object[] { type })); }
internal static bool CheckIsExcluded(this IRouteScanner scanner, string nameSpace) { var memberInfo = scanner.GetType(); var method = memberInfo?.GetMethod("IsExcluded", BindingFlags.Instance | BindingFlags.NonPublic, null, new[] { typeof(string) }, null); return((bool)method.Invoke(scanner, new object[] { nameSpace })); }
internal static List <Assembly> IncludedAssemblies(this IRouteScanner scanner) { var memberInfo = scanner.GetType(); var field = memberInfo?.GetField("_includedAssemblies", BindingFlags.Instance | BindingFlags.NonPublic); return((List <Assembly>)field?.GetValue(scanner)); }
internal static string GetScope(this IRouteScanner scanner) { var memberInfo = scanner.GetType(); var field = memberInfo?.GetField("_scope", BindingFlags.Instance | BindingFlags.NonPublic); return((string)field?.GetValue(scanner)); }
/// <summary> /// Creates a new Router object /// </summary> public Router() { RegisteredRoutes = new List <IRoute>(); Logger = NullLogger.GetInstance(); Scanner = new RouteScanner(); Scope = string.Empty; }
internal static List <string> ExcludedNamespaces(this IRouteScanner scanner) { var memberInfo = scanner.GetType(); var field = memberInfo?.GetField("_excludedNamespaces", BindingFlags.Instance | BindingFlags.NonPublic); return((List <string>)field?.GetValue(scanner)); }
/// <summary> /// Returns a new Router object /// </summary> public Router() { _routingTable = new List <IRoute>(); Logger = NullLogger.GetInstance(); Scanner = new RouteScanner(); Scope = string.Empty; }
/// <summary> /// Creates a new Router object /// </summary> public Router() { RegisteredRoutes = new List <IRoute>(); RouteCache = new ConcurrentDictionary <string, IList <IRoute> >(); Logger = NullLogger.GetInstance(); Scanner = new RouteScanner(); Scope = string.Empty; }
public RestServer(IRouter router, IRouteScanner scanner, ILogger <IRestServer> logger) { if (!HttpListener.IsSupported) { throw new PlatformNotSupportedException("Windows Server 2003 (or higher) or Windows XP SP2 (or higher) is required to use instances of this class."); } Router = router ?? new Router(DefaultLogger.GetInstance <IRouter>()); RouteScanner = scanner ?? new RouteScanner(DefaultLogger.GetInstance <IRouteScanner>()); Logger = logger ?? DefaultLogger.GetInstance <IRestServer>(); RouteScanner.Services = Router.Services; Listener = new HttpListener(); RequestHandler = new Thread(RequestListenerAsync); }
/// <summary> /// Scans the type T and returns a list of discovered routes /// </summary> /// <param name="scanner"></param> /// <param name="basePath"></param> /// <typeparam name="T"></typeparam> /// <returns></returns> public static IList <IRoute> Scan <T>(this IRouteScanner scanner, string basePath = null) { return(scanner.Scan(typeof(T), basePath)); }
/// <summary> /// Scans the assembly containing the specified type and returns a list of discovered routes /// </summary> /// <param name="scanner"></param> /// <param name="services"></param> /// <param name="basePath"></param> /// <typeparam name="T"></typeparam> /// <returns></returns> public static IList <IRoute> ScanAssemblyContainingType <T>(this IRouteScanner scanner, IServiceCollection services = null, string basePath = null) { Assembly assembly = Assembly.GetAssembly(typeof(T)); return(scanner.Scan(assembly, basePath)); }