public int Generate(string wszInputFilePath, string bstrInputFileContents, string wszDefaultNamespace, IntPtr[] rgbOutputFileContents, out uint pcbOutput, IVsGeneratorProgress pGenerateProgress) { if (bstrInputFileContents == null) { throw new ArgumentException(bstrInputFileContents); } FileInfo fi = new FileInfo(wszInputFilePath); string className = fi.Name.Split('.').First(); Dictionary <string, object> TemplateParameters = new Dictionary <string, object>(); TemplateParameters.Add("JsonText", bstrInputFileContents); TemplateParameters.Add("JsonNamespace", wszDefaultNamespace); TemplateParameters.Add("JsonClass", className); JsonT4 t4 = new JsonT4(); t4.Session = TemplateParameters; //t4.WriteLine("//------------------------------------------------------------------------------"); //t4.WriteLine("// <auto-generated>"); //t4.WriteLine("// This code was generated by a tool."); //t4.WriteLine("// Runtime Version:4.0.30319.239"); //t4.WriteLine("//"); //t4.WriteLine("// Changes to this file may cause incorrect behavior and will be lost if"); //t4.WriteLine("// the code is regenerated."); //t4.WriteLine("// </auto-generated>"); //t4.WriteLine("//------------------------------------------------------------------------------"); t4.Initialize(); string csCode = t4.TransformText(); //csCode = Format(csCode); byte[] bytes = Encoding.UTF8.GetBytes(csCode); if (bytes == null) { rgbOutputFileContents[0] = IntPtr.Zero; pcbOutput = 0; } else { rgbOutputFileContents[0] = Marshal.AllocCoTaskMem(bytes.Length); Marshal.Copy(bytes, 0, rgbOutputFileContents[0], bytes.Length); pcbOutput = (uint)bytes.Length; } return(VSConstants.S_OK); }
public int Generate(string wszInputFilePath, string bstrInputFileContents, string wszDefaultNamespace, IntPtr[] rgbOutputFileContents, out uint pcbOutput, IVsGeneratorProgress pGenerateProgress) { if (bstrInputFileContents == null) throw new ArgumentException(bstrInputFileContents); FileInfo fi = new FileInfo(wszInputFilePath); string className = fi.Name.Split('.').First(); Dictionary<string, object> TemplateParameters = new Dictionary<string, object>(); TemplateParameters.Add("JsonText", bstrInputFileContents); TemplateParameters.Add("JsonNamespace", wszDefaultNamespace); TemplateParameters.Add("JsonClass", className); JsonT4 t4 = new JsonT4(); t4.Session = TemplateParameters; //t4.WriteLine("//------------------------------------------------------------------------------"); //t4.WriteLine("// <auto-generated>"); //t4.WriteLine("// This code was generated by a tool."); //t4.WriteLine("// Runtime Version:4.0.30319.239"); //t4.WriteLine("//"); //t4.WriteLine("// Changes to this file may cause incorrect behavior and will be lost if"); //t4.WriteLine("// the code is regenerated."); //t4.WriteLine("// </auto-generated>"); //t4.WriteLine("//------------------------------------------------------------------------------"); t4.Initialize(); string csCode = t4.TransformText(); //csCode = Format(csCode); byte[] bytes = Encoding.UTF8.GetBytes(csCode); if (bytes == null) { rgbOutputFileContents[0] = IntPtr.Zero; pcbOutput = 0; } else { rgbOutputFileContents[0] = Marshal.AllocCoTaskMem(bytes.Length); Marshal.Copy(bytes, 0, rgbOutputFileContents[0], bytes.Length); pcbOutput = (uint)bytes.Length; } return VSConstants.S_OK; }