AssemblyContextOptions Class
Definition
- Namespace
- Cuemon.Reflection
- Assemblies
- Cuemon.Core.dll
Provides configuration options for the AssemblyContext class.
public class AssemblyContextOptions : IValidatableParameterObject, IParameterObject
- Inheritance
-
objectAssemblyContextOptions
- Implements
Examples
The following example demonstrates how to configure AssemblyContextOptions to control which assemblies are returned by GetCurrentDomainAssemblies.
using System;
using System.Linq;
using System.Reflection;
using Cuemon.Reflection;
namespace MyApp.Examples;
public class AssemblyContextOptionsExample
{
public void FilterAssemblies()
{
// Configure to include only assemblies whose name contains "Cuemon"
// and exclude the current assembly from results
var assemblies = AssemblyContext.GetCurrentDomainAssemblies(o =>
{
o.AssemblyFilter = assembly =>
assembly.FullName.StartsWith("Cuemon", StringComparison.Ordinal);
o.ReferencedAssemblyFilter = assemblyName =>
assemblyName.FullName.StartsWith("Cuemon", StringComparison.Ordinal);
o.IncludeReferencedAssemblies = true;
// Remove the default exclusion of Cuemon.Core
o.ExcludedAssemblies.Clear();
});
foreach (var assembly in assemblies)
{
Console.WriteLine(assembly.GetName().Name);
}
}
public void UseDefaults()
{
// Default options exclude System and Microsoft assemblies
var options = new AssemblyContextOptions();
Console.WriteLine($"IncludeReferencedAssemblies: {options.IncludeReferencedAssemblies}"); // true
Console.WriteLine($"AssemblyFilter: {(options.AssemblyFilter != null ? "set" : "null")}");
Console.WriteLine($"ReferencedAssemblyFilter: {(options.ReferencedAssemblyFilter != null ? "set" : "null")}");
Console.WriteLine($"ExcludedAssemblies count: {options.ExcludedAssemblies.Count}");
}
public void GetCuemonAssemblies()
{
// Get all Cuemon assemblies in the current domain
var cuemonAssemblies = AssemblyContext.GetCurrentDomainAssemblies(o =>
{
o.AssemblyFilter = a => a.FullName.StartsWith("Cuemon", StringComparison.Ordinal);
o.ReferencedAssemblyFilter = an => an.FullName.StartsWith("Cuemon", StringComparison.Ordinal);
o.IncludeReferencedAssemblies = true;
o.ExcludedAssemblies.Clear();
});
Console.WriteLine($"Found {cuemonAssemblies.Count} Cuemon assemblies:");
foreach (var asm in cuemonAssemblies)
{
Console.WriteLine($" - {asm.GetName().Name} v{asm.GetName().Version}");
}
}
}
Constructors
| Name | Description |
|---|---|
| AssemblyContextOptions() | Initializes a new instance of the AssemblyContextOptions class. |
Properties
| Name | Description |
|---|---|
| AssemblyFilter | Gets or sets a predicate used to filter which assemblies are included during assembly context resolution. |
| ExcludedAssemblies | Gets or sets the collection of assemblies that are unconditionally excluded from the result of GetCurrentDomainAssemblies(Action<AssemblyContextOptions>). |
| IncludeReferencedAssemblies | Gets or sets a value indicating whether referenced assemblies should be included when resolving assembly context. |
| ReferencedAssemblyFilter | Gets or sets a predicate used to filter which referenced assemblies are included during assembly context resolution. |
Methods
| Name | Description |
|---|---|
| ValidateOptions() | Determines whether the public read-write properties of this instance are in a valid state. |