private Type GetGeneratedType(string objectName, RootObjectDefinition definition) { lock (typeCache.SyncRoot) { Type generatedType = (Type)typeCache[objectName]; if (generatedType == null) { #region Instrumentation if (log.IsDebugEnabled) { log.Debug(string.Format(CultureInfo.InvariantCulture, "Generating a subclass of the [{0}] class for the '{1}' " + "object definition for the purposes of method injection.", definition.ObjectType, objectName)); } #endregion ModuleBuilder module = DynamicCodeManager.GetModuleBuilder(DYNAMIC_ASSEMBLY_NAME); generatedType = new MethodInjectingTypeBuilder(module, definition).BuildType(); typeCache[objectName] = generatedType; } return(generatedType); } }
private Type GetGeneratedType(string objectName, RootObjectDefinition definition) { lock (typeCache.SyncRoot) { Type generatedType = (Type) typeCache[objectName]; if (generatedType == null) { #region Instrumentation if (log.IsDebugEnabled) { log.Debug(string.Format(CultureInfo.InvariantCulture, "Generating a subclass of the [{0}] class for the '{1}' " + "object definition for the purposes of method injection.", definition.ObjectType, objectName)); } #endregion ModuleBuilder module = DynamicCodeManager.GetModuleBuilder(DYNAMIC_ASSEMBLY_NAME); generatedType = new MethodInjectingTypeBuilder(module, definition).BuildType(); typeCache[objectName] = generatedType; } return generatedType; } }