public static string Serialize(Nitra.Language language, IEnumerable<GrammarDescriptor> dynamicExtensions, LibReference[] libs, Func<string, string> pathConverter) { var writer = new StringWriter(); var data = new Language { Name = language.FullName, Path = pathConverter(language.GetType().Assembly.Location), DynamicExtensions = dynamicExtensions.Select(g => new DynamicExtension { Name = g.FullName, Path = pathConverter(g.GetType().Assembly.Location) }).ToArray(), Libs = libs.Select(x => x.Serialize()).ToArray() }; _serializer.Serialize(writer, data); return writer.ToString(); }