private void writeResolverCodeFile(ServiceGraph serviceGraph, string path, GeneratedInstance instance, FileSystem system, Dictionary <string, string> typenames) { var assembly = serviceGraph.ToGeneratedAssembly(Namespace); var(className, code) = instance.GenerateResolverClassCode(assembly); system.WriteStringToFile(Path.Combine(path, className + ".cs"), code); typenames.Add(className, Namespace + "." + className); }
private void writeResolverLoaderClass(ServiceGraph serviceGraph, string path, Dictionary <string, string> typenames, FileSystem system) { var resolverAssembly = serviceGraph.ToGeneratedAssembly(Namespace); var resolverType = resolverAssembly.AddType(ResolverLoaderClassName, typeof(IResolverLoader)); var method = resolverType.MethodFor(nameof(IResolverLoader.ResolverTypes)); method.Frames.Add(new ResolverDictFrame(typenames)); var resolverCode = resolverAssembly.GenerateCode(); system.WriteStringToFile(Path.Combine(path, ResolverLoaderClassName + ".cs"), resolverCode); }