static IDogfoodService CreateDogfoodService(DTE dte, IServiceProvider serviceProvider, IProjectUtilities projectUtilities) { switch (dte.Version) { case "14.0": return(CreateDogfoodService(() => new DogfoodService14(serviceProvider, projectUtilities))); case "15.0": return(CreateDogfoodService(() => new DogfoodService15(serviceProvider, projectUtilities))); case "16.0": try { Assembly.Load("Microsoft.VisualStudio.ExtensionManager, Version=16.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"); return(CreateDogfoodService(() => new DogfoodService16(serviceProvider, projectUtilities))); } catch (FileNotFoundException) { // If we can't load ExtensionManager 16.0, fall back to using the 15.0 version return(CreateDogfoodService(() => new DogfoodService15(serviceProvider, projectUtilities))); } default: return(null); } }
public DogfoodCommand( IDogfoodService dogfoodService, IProjectUtilities projectUtilities, IDogfoodOutputPane dogfoodOutputPane, [Import(typeof(SVsServiceProvider))] IServiceProvider serviceProvider) { this.dogfoodService = dogfoodService; this.projectUtilities = projectUtilities; this.dogfoodOutputPane = dogfoodOutputPane; this.serviceProvider = serviceProvider; }
public DogfoodService(IServiceProvider serviceProvider, IProjectUtilities projectUtilities) { this.serviceProvider = serviceProvider; this.projectUtilities = projectUtilities; }
public DogfoodService(IProjectUtilities projectUtilities) { this.projectUtilities = projectUtilities; }
IDogfoodService CreateDogfoodService(string version, IServiceProvider serviceProvider, IProjectUtilities projectUtilities) { var executingType = GetType(); var fullName = executingType.FullName; var assemblyName = executingType.Assembly.GetName(); assemblyName.Name = $"{assemblyName.Name}.{version}"; var assemblyQualifiedName = $"{fullName}, {assemblyName}"; if (Type.GetType(assemblyQualifiedName, false) is Type targetType) { return((IDogfoodService)Activator.CreateInstance(targetType, serviceProvider, projectUtilities)); } return(null); }