private void Cache_OnCacheMiss(object sender, CacheMissEventArgs e) { // let the client log these if necessary Log?.Invoke(this, new WarningLogEventArgs() { Message = "Cache Miss", Data = e }); }
// // Private methods // private object OnCacheMissHandler(object oSender, CacheMissEventArgs oArgs) { // Obtain application string sAppName = (string)oArgs.Key; // Use factory to return the new object ITisServiceProvider oServiceProvider = m_oFactory.CreateServiceProvider(sAppName); if (oServiceProvider is ITisServiceLifetimeManager) { FireOnLifetimeManagerActivate( sAppName, (ITisServiceLifetimeManager)oServiceProvider); } return(oServiceProvider); }
private object CreatorsCache_OnCacheMiss( object oSender, CacheMissEventArgs oArgs) { TisServiceKey oServiceKey = (TisServiceKey)oArgs.Key; // Obtain service info ITisServiceInfo oServiceInfo = m_oServicesHost.CheckedGetServiceInfo(m_sAppName, oServiceKey.ServiceName); // Validate we can host the service ValidateCanHostService(oServiceInfo); // Obtain service creator ITisServiceCreator oCreator = InstanciateCreator(oServiceInfo); // Set creator context SetCreatorContext(oCreator, oServiceKey); return(oCreator); }
internal override object OnCacheMissHandler(object oSender, CacheMissEventArgs oArgs) { string[] InstanceArgs = (string[])ParsePersistKey((string)oArgs.Key); string sAssemblyName = InstanceArgs [0]; string sClassImplName = InstanceArgs [1]; ObjectHandle oWrappedObject; try { oWrappedObject = AppDomain.CurrentDomain.CreateInstance(sAssemblyName, sClassImplName); } catch (Exception oExc) { throw new TisException( oExc.InnerException, "Failed to create an instance of {0} [Assembly : {1}]", sClassImplName, sAssemblyName); } return(oWrappedObject.Unwrap()); }
// // Protected // protected object ServicesCache_OnCacheMiss( object oSender, CacheMissEventArgs oArgs) { TisServiceKey oServiceKey = (TisServiceKey)oArgs.Key; //Log.Write( // Log.Severity.DETAILED_DEBUG, // System.Reflection.MethodInfo.GetCurrentMethod(), // "Activating service [{0}] in App [{1}], ServiceCache: {2}", // oServiceKey, // m_sAppName, // GetHashCode()); // Return the service object from real service provider object oObj = m_oServicesActivator.GetService(oServiceKey); if (m_oServicesCache.GetCached(oServiceKey) != null) { return(null); } // Fire pre-activate event FirePreServiceActivate(oServiceKey); if (!m_bDisposing) { // Keep load order UpdateLoadOrder(oServiceKey); } // Fire post-activate event FirePostServiceActivate(oServiceKey, oObj); return(oObj); }
internal override object OnCacheMissHandler(object oSender, CacheMissEventArgs oArgs) { string[] MethodArgs = ParsePersistKey((string)oArgs.Key); string sAssemblyName = MethodArgs [0]; string sClassImplName = MethodArgs [1]; string sMethodName = MethodArgs [2]; Assembly oAssembly; try { oAssembly = AppDomain.CurrentDomain.Load(sAssemblyName); } catch (Exception oExc) { throw new TisException( oExc.InnerException, "Failed to load assembly {0}", sAssemblyName); } Type oType; try { oType = oAssembly.GetType(sClassImplName); if (oType == null) { Type [] AssemblyTypes = oAssembly.GetTypes(); foreach (Type oAssemblyType in AssemblyTypes) { if (StringUtil.CompareIgnoreCase(oAssemblyType.Name, sClassImplName)) { oType = oAssemblyType; break; } } } if (oType == null) { throw new Exception("Type is not found"); } } catch (Exception oExc) { throw new TisException( oExc.InnerException, "Failed to obtain type of {0}", sClassImplName); } MethodInfo oMethod = oType.GetMethod(sMethodName); if (oMethod == null) { throw new TisException( "Failed to obtain method {0}", sMethodName); } return(oMethod); }
internal virtual object OnCacheMissHandler(object oSender, CacheMissEventArgs oArgs) { return(null); }