Paradox Game Engine  v1.0.0 beta06
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Events Macros Pages
DataCodeGeneratorHelper.cs
Go to the documentation of this file.
1 // Copyright (c) 2014 Silicon Studio Corp. (http://siliconstudio.co.jp)
2 // This file is distributed under GPL v3. See LICENSE.md for details.
3 using System;
4 using System.Collections.Generic;
5 using System.Diagnostics;
6 using System.IO;
7 using System.Linq;
8 using System.Runtime.InteropServices;
9 using System.Text;
10 using System.Text.RegularExpressions;
11 using Microsoft.Build.Execution;
12 using Microsoft.Build.Framework;
13 using Microsoft.VisualStudio;
14 using Microsoft.VisualStudio.Shell;
15 using Microsoft.VisualStudio.Shell.Interop;
16 using Microsoft.VisualStudio.TextTemplating.VSHost;
17 using Mono.Cecil;
18 
19 using SiliconStudio.Paradox.VisualStudio.Commands.DataGenerator;
20 
21 namespace SiliconStudio.Paradox.VisualStudio.DataGenerator
22 {
24  {
25  public static byte[] GenerateSource(string assemblyOutput, string projectFullName, string intermediateAssembly)
26  {
27  // Create assembly resolver with original assembly path
28  var assemblyResolver = new DefaultAssemblyResolver();
29  assemblyResolver.AddSearchDirectory(Path.GetDirectoryName(assemblyOutput));
30 
31  // Load assembly
32  var intermediateAssemblyFullPath = Path.Combine(Path.GetDirectoryName(projectFullName), intermediateAssembly);
33  var assembly = AssemblyDefinition.ReadAssembly(intermediateAssemblyFullPath,
34  new ReaderParameters { AssemblyResolver = assemblyResolver, ReadSymbols = false });
35  var dataConverterGenerator = new DataConverterGenerator(assemblyResolver, assembly);
36 
37  // Generate source
38  var sourceCode = dataConverterGenerator.TransformText();
39  return Encoding.ASCII.GetBytes(sourceCode);
40  }
41  }
42 }
static byte[] GenerateSource(string assemblyOutput, string projectFullName, string intermediateAssembly)