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;
 }
Exemple #3
0
 public DogfoodService(IServiceProvider serviceProvider, IProjectUtilities projectUtilities)
 {
     this.serviceProvider  = serviceProvider;
     this.projectUtilities = projectUtilities;
 }
 public DogfoodService(IProjectUtilities projectUtilities)
 {
     this.projectUtilities = projectUtilities;
 }
Exemple #5
0
        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);
        }