Skip to content
This repository has been archived by the owner on Jan 15, 2021. It is now read-only.

Commit

Permalink
Implement Build Mode detection of assemblies in Environment tab. Than…
Browse files Browse the repository at this point in the history
…ks to @ardalis for the tip and code to check if assembly is built in Debug
  • Loading branch information
lohithgn committed Jul 16, 2014
1 parent 6356763 commit b0867cd
Show file tree
Hide file tree
Showing 3 changed files with 20 additions and 5 deletions.
2 changes: 2 additions & 0 deletions source/Glimpse.AspNet/Model/EnvironmentAssemblyModel.cs
Expand Up @@ -13,5 +13,7 @@ public class EnvironmentAssemblyModel
public bool FromGac { get; set; }

public bool? FullTrust { get; set; }

public string BuildMode { get; set; }
}
}
Expand Up @@ -72,10 +72,10 @@ private TabObject BuildProcessDetails(EnvironmentProcessModel model)

private TabSection BuildAssemblyDetails(IEnumerable<EnvironmentAssemblyModel> model)
{
var modelList = new TabSection("Name", "Version", "Version Info", "Culture", "From GAC", "Full Trust");
var modelList = new TabSection("Name", "Version", "Version Info", "Culture", "From GAC", "Full Trust", "Build Mode");
foreach (var assemblyModel in model)
{
modelList.AddRow().Column(assemblyModel.Name).Column(assemblyModel.Version).Column(assemblyModel.VersionInfo).Column(assemblyModel.Culture).Column(assemblyModel.FromGac).Column(assemblyModel.FullTrust);
modelList.AddRow().Column(assemblyModel.Name).Column(assemblyModel.Version).Column(assemblyModel.VersionInfo).Column(assemblyModel.Culture).Column(assemblyModel.FromGac).Column(assemblyModel.FullTrust).Column(assemblyModel.BuildMode);
}

return modelList;
Expand Down
19 changes: 16 additions & 3 deletions source/Glimpse.AspNet/Tab/Environment.cs
Expand Up @@ -160,9 +160,9 @@ private void FindAssemblies(EnvironmentModel model)
var versionInfo = GetVersionNumber(assembly);
var culture = string.IsNullOrEmpty(assemblyName.CultureInfo.Name) ? "neutral" : assemblyName.CultureInfo.Name;
var fromGac = assembly.GlobalAssemblyCache;
var fullTrust = IsFullyTrusted(assembly);

var result = new EnvironmentAssemblyModel { Name = name, Version = version, VersionInfo = versionInfo, Culture = culture, FromGac = fromGac, FullTrust = fullTrust };
var fullTrust = IsFullyTrusted(assembly);
var buildMode = IsAssemblyDebugBuild(assembly) == true ? "Debug" : "Release";
var result = new EnvironmentAssemblyModel { Name = name, Version = version, VersionInfo = versionInfo, Culture = culture, FromGac = fromGac, FullTrust = fullTrust, BuildMode=buildMode };

var isSystem = systemNamspaces.Any(systemNamspace => assembly.FullName.StartsWith(systemNamspace));
if (isSystem)
Expand Down Expand Up @@ -232,5 +232,18 @@ private string GetVersionNumber(Assembly assembly)

return infoVersion != null ? infoVersion.InformationalVersion : null;
}

private bool IsAssemblyDebugBuild(Assembly assembly)
{
foreach (var attribute in assembly.GetCustomAttributes(false))
{
var debuggableAttribute = attribute as DebuggableAttribute;
if (debuggableAttribute != null)
{
return debuggableAttribute.IsJITTrackingEnabled;
}
}
return false;
}
}
}

0 comments on commit b0867cd

Please sign in to comment.