/// <summary> /// This method does three tasks: /// 1. Loads the Entities, if not already loaded, and passes them to the EntityEndPointBuilder. /// 2. Stores each loaded entity type in the LoadedEntities list. /// 3. Creates the ServiceRoute for the WCF service in the RouteTable. /// </summary> public static void LoadEntities() { var entityLoader = new EntityLoader(); foreach (var item in entityLoader.PluginTypes) { if (LoadedEntities.Contains(item) || LoadedEntities.Any(t => t.Name == item.Name)) { continue;// Entity is already loaded } LoadedEntities.Add(item); EntityEndPointBuilder.BuildEntityRestService(item); } RouteTable.Routes.Add(new ServiceRoute("Service", new WebServiceHostFactory(), typeof(MetadataService))); }
public static void LoadEntities() { var loader = new CustomWebServiceLoader(); var customWebServiceTypes = loader.PluginTypes.Where(t => !t.IsInterface).ToList(); foreach (Type item in customWebServiceTypes) { var attribute = item.GetCustomAttributes(true)?.FirstOrDefault(a => typeof(CustomWebServiceAttribute).IsAssignableFrom(a.GetType())) as CustomWebServiceAttribute; if (attribute != null) { if (attribute.Entity != null) { EntityLoader.LoadedEntities.Add(attribute.Entity); } EntityEndPointBuilder.BuildWebService(item, attribute); } } }