コード例 #1
0
ファイル: EntityLoader.cs プロジェクト: rhyous/EntityAnywhere
        /// <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)));
        }
コード例 #2
0
        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);
                }
            }
        }