コード例 #1
0
		void GenerateInternal (IProgressMonitor monitor, ProjectFile file, SingleFileCustomToolResult result)
		{
			var dnp = file.Project as DotNetProject;
			if (dnp == null || dnp.LanguageName != "C#") {
				var msg = "Razor templates are only supported in C# projects";
				result.Errors.Add (new CompilerError (file.Name, -1, -1, null, msg));
				monitor.Log.WriteLine (msg);
				return;
			}

			var host = PreprocessedRazorHost.Create (file.FilePath);

			var defaultOutputName = file.FilePath.ChangeExtension (".cs");

			var ns = GetNamespaceHint (file, defaultOutputName);
			host.DefaultNamespace = ns;

			CompilerErrorCollection errors;
			var code = host.GenerateCode (out errors);
			result.Errors.AddRange (errors);

			var writer = new MonoDevelop.DesignerSupport.CodeBehindWriter ();
			writer.WriteFile (defaultOutputName, code);
			writer.WriteOpenFiles ();

			result.GeneratedFilePath = defaultOutputName;

			foreach (var err in result.Errors) {
				monitor.Log.WriteLine (err.ToString ());
			}
		}
コード例 #2
0
		static void GenerateInternal (IProgressMonitor monitor, ProjectFile file, SingleFileCustomToolResult result)
		{
			if (file.Project.SupportedLanguages.All (l => l != "C#")) {
				const string msg = "Razor templates are only supported in C# projects";
				result.Errors.Add (new CompilerError (file.Name, -1, -1, null, msg));
				monitor.Log.WriteLine (msg);
				return;
			}

			var host = new PreprocessedRazorHost (file.FilePath);

			var defaultOutputName = file.FilePath.ChangeExtension (".cs");

			var ns = CustomToolService.GetFileNamespace (file, defaultOutputName);
			host.DefaultNamespace = ns;

			CompilerErrorCollection errors;
			var code = host.GenerateCode (out errors);
			result.Errors.AddRange (errors);

			var writer = new MonoDevelop.DesignerSupport.CodeBehindWriter ();
			writer.WriteFile (defaultOutputName, code);
			writer.WriteOpenFiles ();

			result.GeneratedFilePath = defaultOutputName;

			foreach (var err in result.Errors) {
				monitor.Log.WriteLine (err);
			}
		}
コード例 #3
0
        static void GenerateInternal(IProgressMonitor monitor, ProjectFile file, SingleFileCustomToolResult result)
        {
            if (file.Project.SupportedLanguages.All(l => l != "C#"))
            {
                const string msg = "Razor templates are only supported in C# projects";
                result.Errors.Add(new CompilerError(file.Name, -1, -1, null, msg));
                monitor.Log.WriteLine(msg);
                return;
            }

            var host = new PreprocessedRazorHost(file.FilePath);

            var defaultOutputName = file.FilePath.ChangeExtension(".cs");

            var ns = CustomToolService.GetFileNamespace(file, defaultOutputName);

            host.DefaultNamespace = ns;

            CompilerErrorCollection errors;
            var code = host.GenerateCode(out errors);

            result.Errors.AddRange(errors);

            var writer = new MonoDevelop.DesignerSupport.CodeBehindWriter();

            writer.WriteFile(defaultOutputName, code);
            writer.WriteOpenFiles();

            result.GeneratedFilePath = defaultOutputName;

            foreach (var err in result.Errors)
            {
                monitor.Log.WriteLine(err);
            }
        }
コード例 #4
0
        void GenerateInternal(IProgressMonitor monitor, ProjectFile file, SingleFileCustomToolResult result)
        {
            var dnp = file.Project as DotNetProject;

            if (dnp == null || dnp.LanguageName != "C#")
            {
                var msg = "Razor templates are only supported in C# projects";
                result.Errors.Add(new CompilerError(file.Name, -1, -1, null, msg));
                monitor.Log.WriteLine(msg);
                return;
            }

            var host = PreprocessedRazorHost.Create(file.FilePath);

            var defaultOutputName = file.FilePath.ChangeExtension(".cs");

            var ns = GetNamespaceHint(file, defaultOutputName);

            host.DefaultNamespace = ns;

            CompilerErrorCollection errors;
            var code = host.GenerateCode(out errors);

            result.Errors.AddRange(errors);

            var writer = new MonoDevelop.DesignerSupport.CodeBehindWriter();

            writer.WriteFile(defaultOutputName, code);
            writer.WriteOpenFiles();

            result.GeneratedFilePath = defaultOutputName;

            foreach (var err in result.Errors)
            {
                monitor.Log.WriteLine(err.ToString());
            }
        }