public Type CompileUserCodeToType(CompilationTargetFx targetFx, Func <string, string> assemblyLocationResolver) { using (MessagesReaderExtensions extensions = new MessagesReaderExtensions(null, fmtInfo.Value.ExtensionsInitData)) { var fieldsProcessor = MessagesReader.CreateNewFieldsProcessor(this.fmtInfo.Value, extensions, tempFilesManager); var type = fieldsProcessor.CompileUserCodeToType(targetFx, assemblyLocationResolver); return(type); } }
internal static IFieldsProcessor CreateNewFieldsProcessor(FormatInfo fmtInfo, MessagesReaderExtensions extensions, ITempFilesManager tempFilesManager) { return(new FieldsProcessor( fmtInfo.FieldsProcessorParams, fmtInfo.HeadRe.Regex.GetGroupNames().Skip(1).Concat( fmtInfo.BodyRe.Regex != null ? fmtInfo.BodyRe.Regex.GetGroupNames().Skip(1) : Enumerable.Repeat("body", 1)), extensions.Items.Select(ext => new FieldsProcessor.ExtensionInfo(ext.Name, ext.AssemblyName, ext.ClassName, ext.Instance)), tempFilesManager )); }