예제 #1
0
        public void Initialize(IConfigSource config, IRegistryCore registry)
        {
            IConfig handlerConfig = config.Configs["Handlers"];

            if (handlerConfig.GetString("AssetHandler", "") != Name)
            {
                return;
            }

            string localAssetHandler      = handlerConfig.GetString("LocalAssetHandler", "AssetService");
            List <IAssetService> services = AuroraModuleLoader.PickupModules <IAssetService>();

#if (!ISWIN)
            foreach (IAssetService s in services)
            {
                if (s.GetType().Name == localAssetHandler)
                {
                    m_localService = s;
                }
            }
#else
            foreach (IAssetService s in services.Where(s => s.GetType().Name == localAssetHandler))
            {
                m_localService = s;
            }
#endif

            if (m_localService == null)
            {
                m_localService = new AssetService();
            }
            m_localService.Configure(config, registry);
            m_remoteService = new AssetServicesConnector();
            m_remoteService.Initialize(config, registry);
            registry.RegisterModuleInterface <IAssetService>(this);
            m_registry = registry;
        }