private void CreateBundleLoader() { if (_loader == null) { _loader = BundleLoaderProxyFactory.CreateBundleLoader(Bundle, Framework); } }
/// <summary> /// 获取类加载器 /// </summary> /// <returns></returns> public IClassLoader GetClassLoader() { BundleLoaderProxy curProxy = GetLoaderProxy(); IBundleLoader loader = curProxy == null ? null : curProxy.BundleLoader; IClassLoader bcl = loader == null ? null : curProxy.CreateBundleLoader(); return(bcl); }
/// <summary> /// 创建插件加载器 /// </summary> internal IBundleLoader CreateBundleLoader() { if (bundleLoader != null) { return(bundleLoader); } bundleLoader = new BundleLoaderImpl(bundle); return(bundleLoader); }
/// <summary> /// 加载资源 /// </summary> /// <param name="resourceName"></param> /// <param name="loadMode"></param> /// <returns></returns> public override object LoadResource(string resourceName, ResourceLoadMode loadMode) { IBundleLoader loader = this.BundleLoader; if (loader == null) { return(null); } object result = loader.LoadResource(resourceName, loadMode); return(result); }
protected void Init(IBundleLoader bundleLoader) { bundleLoader.LoadBundleSync(bundleName); xDoc = XDocument.Parse(bundleLoader.GetText(bundleName, xmlName).text); if (xDoc.Root != null) { ImportContexts(); DefineBeans(); } bundleLoader.UnloadBundle(bundleName, false); }
/// <summary> /// 获取上下文 /// </summary> /// <param name="path"></param> /// <returns></returns> public static XmlContext GetContext(string bundleName, string xmlName) { IBundleLoader bundleLoader = ApplicationContext.context.GetSingleton(typeof(IBundleLoader)) as IBundleLoader; XmlContext context; if (!contextDict.TryGetValue(bundleName + xmlName, out context)) { context = new XmlContext(bundleName, xmlName); context.Init(bundleLoader); contextDict.Add(bundleName + xmlName, context); } return(context); }
/// <summary> /// 加载指定的类名的类型 /// </summary> /// <param name="className"></param> /// <returns></returns> public override Type LoadClass(string className) { IBundleLoader loader = this.BundleLoader; if (loader == null) { throw new Exception(); } try { return(loader.LoadClass(className)); } catch (Exception e) { throw e; } }
public void Configure(IApplicationBuilder app, IHostingEnvironment env, IApplication server, IShamanLogger logger, IBundleLoader bundleLoader, IShamanComponents shamanComponents, IRoomControllerFactory roomControllerFactory) { bundleLoader.LoadBundle(); var gameBundle = bundleLoader.LoadTypeFromBundle <IGameBundle>(); gameBundle.OnInitialize(shamanComponents); var bundledRoomControllerFactory = gameBundle.GetRoomControllerFactory(); if (bundledRoomControllerFactory == null) { throw new NullReferenceException("Game bundle returned null factory"); } ((IBundleRoomControllerRegistry)roomControllerFactory).RegisterBundleRoomController(bundledRoomControllerFactory); base.ConfigureGame(app, env, server, logger); }
public void Configure(IApplicationBuilder app, IHostingEnvironment env, IApplication server, IShamanLogger logger, IMatchMaker matchMaker, IServerActualizer serverActualizer, IMatchMakerServerInfoProvider serverInfoProvider, IBundleLoader bundleLoader) { serverActualizer.Start(Convert.ToInt32(Configuration["LauncherSettings:ActualizationIntervalMs"])); base.ConfigureMm(app, env, server, logger, matchMaker, serverInfoProvider, bundleLoader); }
/// <summary> /// MM related middleware configuration /// </summary> /// <param name="app"></param> /// <param name="env"></param> /// <param name="server"></param> /// <param name="logger"></param> /// <param name="matchMaker"></param> /// <param name="serverInfoProvider"></param> /// <param name="bundleLoader"></param> public void ConfigureMm(IApplicationBuilder app, IHostingEnvironment env, IApplication server, IShamanLogger logger, IMatchMaker matchMaker, IMatchMakerServerInfoProvider serverInfoProvider, IBundleLoader bundleLoader) { //load bundle bundleLoader.LoadBundle().Wait(); //resolve main bundle type and configure it //in case of matchmaker we can load bundle during this stage var resolver = bundleLoader.LoadTypeFromBundle <IMmResolver>(); RoomPropertiesProvider.RoomPropertiesProviderImplementation = resolver.GetRoomPropertiesProvider(); resolver.Configure(matchMaker); //start game server info provider - gathers info about game servers connected to this matchmaker serverInfoProvider.Start(); base.ConfigureCommon(app, env, server, logger); }
public void Configure(IApplicationBuilder app, IHostingEnvironment env, IApplication server, IServerActualizer serverActualizer, IShamanLogger logger, IBundleLoader bundleLoader, IShamanComponents shamanComponents, IRoomControllerFactory roomControllerFactory) { //todo extract in one place serverActualizer.Start(Convert.ToInt32(Configuration["ServerSettings:ActualizationIntervalMs"])); bundleLoader.LoadBundle(); var gameBundle = bundleLoader.LoadTypeFromBundle <IGameBundle>(); gameBundle.OnInitialize(shamanComponents); var bundledRoomControllerFactory = gameBundle.GetRoomControllerFactory(); if (bundledRoomControllerFactory == null) { throw new NullReferenceException("Game bundle returned null factory"); } ((IBundleRoomControllerRegistry)roomControllerFactory).RegisterBundleRoomController(bundledRoomControllerFactory); base.ConfigureGame(app, env, server, logger); }
void Awake() { loader = ApplicationContext.context.GetSingleton(typeof(IBundleLoader)) as IBundleLoader; }
public BundleSettingsFromBundleLoaderProvider(IBundleLoader bundleLoader) { _bundleLoader = bundleLoader; }
public AbstractRuntimeLoader(IBundleLoader ownerLoader) { Owner = ownerLoader; }
public DependencyBundleLoader(IDependentBundleConstraint requireConstraintMetadata, IBundleLoader ownerLoader) : base(ownerLoader) { if (requireConstraintMetadata == null) { throw new ArgumentNullException(); } Dependency = requireConstraintMetadata; }
public void Configure(IApplicationBuilder app, IHostingEnvironment env, IApplication server, IShamanLogger logger, IMatchMaker matchMaker, IMatchMakerServerInfoProvider serverInfoProvider, IBundleLoader bundleLoader) { base.ConfigureMm(app, env, server, logger, matchMaker, serverInfoProvider, bundleLoader); }