// TODO -- harden with a better exception public Type FindEnvironmentType() { if (EnvironmentClassName.IsNotEmpty()) { return(Type.GetType(EnvironmentClassName)); } return(AppDomain.CurrentDomain .Load(AssemblyName) .GetExportedTypes() .First(x => x.IsConcreteTypeOf <IEnvironment>())); }
// TODO -- harden with a better exception public Type FindEnvironmentType(IPackageLog log) { if (EnvironmentClassName.IsNotEmpty()) { log.Trace("Environment class was specified '{0}'", EnvironmentClassName); return(Type.GetType(EnvironmentClassName)); } log.Trace("Scanning AppDomain for IEnvironment"); var foundClass = AppDomain.CurrentDomain .Load(AssemblyName) .GetExportedTypes() .First(x => x.IsConcreteTypeOf <IEnvironment>()); log.Trace("Found Environment class '{0}'", foundClass); return(foundClass); }
public void AssertIsValid() { var messages = new List <string>(); if (ApplicationBase.IsEmpty()) { messages.Add("ApplicationBase must be a valid folder"); } if (EnvironmentClassName.IsEmpty() && AssemblyName.IsEmpty()) { messages.Add("Either EnvironmentClassName or AssemblyName must be set"); } if (messages.Any()) { throw new EnvironmentRunnerException(messages.Join("; ")); } }