public object GetModule(ModuleType moduleType, Guid keyParameter) { if (moduleType == ModuleType.Unknown) { return(null); } var activator = serviceContainer.GetService <IModuleActivator>(); IDictionary <Guid, WeakReference> identityCache; if (!modulesIdentityCache.TryGetValue(moduleType, out identityCache)) { identityCache = new Dictionary <Guid, WeakReference>(); modulesIdentityCache.Add(moduleType, identityCache); } return(GetModuleCore(identityCache, keyParameter, moduleType, (moduleTypeName, parameter) => activator.CreateModule(moduleTypeName), null)); }
public object CreateModule(ModuleType moduleType) { var activator = serviceContainer.GetService <IModuleActivator>(); var resolver = serviceContainer.GetService <IModuleTypesResolver>(); return(activator.CreateModule(resolver.GetTypeName(moduleType))); }
public object GetReport(object reportKey) { if (object.ReferenceEquals(reportKey, null)) { return(null); } WeakReference reportReference; if (!reportsCache.TryGetValue(reportKey, out reportReference) || reportReference.Target == null) { var activator = serviceContainer.GetService <IReportActivator>(); var report = activator.CreateReport(reportKey); if (reportReference == null) { reportReference = new WeakReference(report); reportsCache.Add(reportKey, reportReference); } else { reportReference.Target = report; } } return(reportReference.Target); }
public object GetReport(object reportKey) { var activator = serviceContainer.GetService <IReportActivator>(); return(GetReportCore(reportKey, (reportTypeName) => activator.CreateReport(reportTypeName))); }