Files
reswcodegen/RESW File Code Generator/VSPackage/CustomTool/CodeGeneratorFactory.cs
T
2014-04-24 10:02:14 +02:00

34 lines
1.2 KiB
C#

using System;
using System.CodeDom.Compiler;
using System.Reflection;
using EnvDTE;
using Microsoft.VisualStudio.Shell;
using Microsoft.VisualStudio.Shell.Interop;
namespace ChristianHelle.DeveloperTools.CodeGenerators.Resw.VSPackage.CustomTool
{
public class CodeGeneratorFactory
{
public ICodeGenerator Create(string className, string defaultNamespace, string inputFileContents, CodeDomProvider codeDomProvider = null, TypeAttributes? classAccessibility = null)
{
return new CodeDomCodeGenerator(new ResourceParser(inputFileContents), className, defaultNamespace, codeDomProvider, classAccessibility, VisualStudioHelper.GetVersion());
}
}
public static class VisualStudioHelper
{
public static VisualStudioVersion GetVersion()
{
var dte = Package.GetGlobalService(typeof(SDTE)) as DTE;
var vsVersion = VisualStudioVersion.VS2012;
if (dte != null)
{
Version dteVersion;
if (Version.TryParse(dte.Version, out dteVersion) && dteVersion >= new Version(12, 0))
vsVersion = VisualStudioVersion.VS2013;
}
return vsVersion;
}
}
}