public TemplateFactory GetCompiledTemplate(ViewSourceCollection viewSourceCollection, Type templateBaseType) { Invariant.ArgumentNotNull(viewSourceCollection, "viewSourceCollection"); Invariant.ArgumentNotNull(templateBaseType, "templateBaseType"); templateBaseType = ProxyExtracter.GetNonProxiedType(templateBaseType); var className = viewSourceCollection.GetClassName(); lock ( _compiledTemplateCache ) { return(_compiledTemplateCache.GetOrAdd(className, viewSourceCollection[0].TimeStamp, () => _templateFactoryFactory.CompileTemplateFactory(className, viewSourceCollection, templateBaseType))); } }