public IEnumerable <CompilerReference> GetReferences(TypeContext context = null, IEnumerable <CompilerReference> includeAssemblies = null) { return((from a in CompilerServicesUtility.GetLoadedAssemblies().Where(delegate(Assembly a) { if (!a.IsDynamic) { try { // Call to .Location property throws an exception on some assemblies, something weird with file://?/C:/... if (File.Exists(a.Location)) { return !a.Location.Contains("CompiledRazorTemplates.Dynamic"); } } catch { return false; } } return false; }) group a by a.GetName().Name into grp select grp.First((Assembly y) => y.GetName().Version == grp.Max((Assembly x) => x.GetName().Version)) into a select CompilerReference.From(a)).Concat(includeAssemblies ?? Enumerable.Empty <CompilerReference>())); }
/// <summary> /// See <see cref="IReferenceResolver.GetReferences"/> /// </summary> /// <param name="context"></param> /// <param name="includeAssemblies"></param> /// <returns></returns> public IEnumerable <CompilerReference> GetReferences(TypeContext context = null, IEnumerable <CompilerReference> includeAssemblies = null) { return(CompilerServicesUtility .GetLoadedAssemblies() .Where(a => !a.IsDynamic && !a.FullName.Contains("Version=0.0.0.0") && File.Exists(a.Location) && !a.Location.Contains("CompiledRazorTemplates.Dynamic")) .GroupBy(a => a.GetName().Name).Select(grp => grp.First(y => y.GetName().Version == grp.Max(x => x.GetName().Version))) // only select distinct assemblies based on FullName to avoid loading duplicate assemblies .Select(a => CompilerReference.From(a)) .Concat(includeAssemblies ?? Enumerable.Empty <CompilerReference>())); }
/// <summary> /// See <see cref="IReferenceResolver.GetReferences"/> /// </summary> /// <param name="context"></param> /// <param name="includeAssemblies"></param> /// <returns></returns> public IEnumerable <CompilerReference> GetReferences(TypeContext context = null, IEnumerable <CompilerReference> includeAssemblies = null) { return(CompilerServicesUtility .GetLoadedAssemblies() .Where(IsValidAssembly) .GroupBy(a => a.GetName().Name).Select(grp => grp.First(y => y.GetName().Version == grp.Max(x => x.GetName().Version))) // only select distinct assemblies based on FullName to avoid loading duplicate assemblies .Select(a => CompilerReference.From(a)) .Concat(includeAssemblies ?? Enumerable.Empty <CompilerReference>())); }
public IEnumerable <string> GetReferences(TypeContext context = null, IEnumerable <string> includeAssemblies = null) { return(CompilerServicesUtility .GetLoadedAssemblies() .Where(a => !a.IsDynamic && File.Exists(a.Location)) .GroupBy(a => a.GetName().Name).Select(grp => grp.First(y => y.GetName().Version == grp.Max(x => x.GetName().Version))) // only select distinct assemblies based on FullName to avoid loading duplicate assemblies .Select(a => a.Location) .Concat(includeAssemblies ?? Enumerable.Empty <string>())); }
public IEnumerable <CompilerReference> GetReferences(TypeContext context, IEnumerable <CompilerReference> includeAssemblies = null) { var allAssembly = CompilerServicesUtility .GetLoadedAssemblies(); var AssemblyToReference = allAssembly .Where(a => !a.IsDynamic && File.Exists(a.Location) && !a.Location.Contains("CompiledRazorTemplates.Dynamic") && a.FullName.IndexOf("System.Web.Helpers") < 0) //(CompilerServiceBase.DynamicTemplateNamespace)) .GroupBy(a => a.GetName().Name).Select(grp => grp.First(y => y.GetName().Version == grp.Max(x => x.GetName().Version))) // only select distinct assemblies based on FullName to avoid loading duplicate assemblies .Select(a => CompilerReference.From(a)) .Concat(includeAssemblies ?? Enumerable.Empty <CompilerReference>()); yield return(CompilerReference.From(HostingEnvironment.ApplicationPhysicalPath + @"Modules\Laser.Orchard.StartupConfig\bin\System.Web.Helpers.dll")); foreach (var assembly in AssemblyToReference) { yield return(assembly); } }
/// <summary> /// See <see cref="IReferenceResolver.GetReferences(TypeContext,IEnumerable{CompilerReference})" /> /// </summary> /// <param name="context"></param> /// <param name="includeAssemblies"></param> /// <returns></returns> public IEnumerable <CompilerReference> GetReferences( TypeContext context = null, IEnumerable <CompilerReference> includeAssemblies = null) { return(CompilerServicesUtility.GetLoadedAssemblies() .Where( a => { if (!a.IsDynamic && File.Exists(a.Location)) { return !a.Location.Contains("CompiledRazorTemplates.Dynamic"); } return false; }) .GroupBy(a => a.GetName().Name) .Select(grp => grp.First(y => y.GetName().Version == grp.Max(x => x.GetName().Version))) .Select(CompilerReference.From) .Concat(includeAssemblies ?? Enumerable.Empty <CompilerReference>())); }
static void LoadMetadataReference() { Tools.MapPath(""); Tools.GetId(); string replstr = RuntimeInformation.IsOSPlatform(OSPlatform.Windows) ? "file:///" : "file://"; var assemblies = CompilerServicesUtility .GetLoadedAssemblies() .Where(a => !a.IsDynamic && File.Exists(a.CodeBase.Replace(replstr, ""))) .Select(a => (a.CodeBase.Replace(replstr, ""))); int c = assemblies.Count(); Constant.BaseNamespaces = new MetadataReference[c]; int i = 0; foreach (string item in assemblies) { Constant.BaseNamespaces[i] = (MetadataReference.CreateFromFile(item)); i++; } }