Coree.NETStandard
  • API
Show / Hide Table of Contents
  • Coree.NETStandard.Abstractions.DependencySingleton
    • DependencySingleton<T>
    • IDependencySingleton
  • Coree.NETStandard.Abstractions.FluentBase
    • FluentBase
    • IFluentBase
  • Coree.NETStandard.Abstractions.InitializationService
    • InitializationDependentServices
    • InitializationService
  • Coree.NETStandard.Abstractions.ServiceFactory
    • ServiceFactory<T>
  • Coree.NETStandard.Abstractions.ServiceFactoryEx
    • ServiceFactoryEx<T>
    • ServiceFactoryEx<T, K, R, S, U, V, W, X, Y, Z>
    • ServiceFactoryEx<T, K>
    • ServiceFactoryEx<T, K, R>
    • ServiceFactoryEx<T, K, R, S>
    • ServiceFactoryEx<T, K, R, S, U>
    • ServiceFactoryEx<T, K, R, S, U, V>
    • ServiceFactoryEx<T, K, R, S, U, V, W>
    • ServiceFactoryEx<T, K, R, S, U, V, W, X>
    • ServiceFactoryEx<T, K, R, S, U, V, W, X, Y>
  • Coree.NETStandard.Classes.AsyncEventCollection
    • AsyncEventCollection<T>
    • AsyncEventCollection<T>.CustomEventDelegate
  • Coree.NETStandard.Classes.CommonDistinguishedNameBuilder
    • CommonDistinguishedNameBuilder
    • DistinguishedName
  • Coree.NETStandard.Classes.Criteria
    • CriteriaComparisonMethod
    • CriteriaEnumerableExtensions
    • CriteriaExpressionBuilder
    • CriteriaItem<TValue>
    • CriteriaItems
    • CriteriaOperator
    • CriteriaQueryableExtensions
  • Coree.NETStandard.Classes.HttpRequestService
    • ContentComposer
    • HttpRequestHeadersExtensions
    • HttpRequestService
    • HttpRequestServiceHandler
    • HttpRequestServiceUriExtensions
    • ServiceCollectionExtensions
    • TransactionRecord
  • Coree.NETStandard.Classes.Scheduler
    • Scheduler
    • Scheduler.TickerEventArgs
    • Scheduler.TickerEventDelegate
  • Coree.NETStandard.Classes.ThreadSafeCollection
    • ThreadSafeCollection<T>
  • Coree.NETStandard.Classes.ThreadSafeValue
    • ThreadSafeValue<T>
  • Coree.NETStandard.Classes.TimeOfDay
    • TimeOfDay
  • Coree.NETStandard.Extensions.Collections.Enumerable
    • CollectionsEnumerableExtensions
  • Coree.NETStandard.Extensions.Collections.List
    • CollectionsListExtensions
  • Coree.NETStandard.Extensions.Conversions.ByteArray
    • ConversionsByteArrayExtensions
  • Coree.NETStandard.Extensions.Conversions.HostApplicationBuilder
    • ConversionsHostApplicationBuilderExtensions
  • Coree.NETStandard.Extensions.Conversions.String
    • ConversionsStringExtensions
    • Encodings
  • Coree.NETStandard.Extensions.Conversions.Stringbuilder
    • ConversionsStringbuilderExtension
  • Coree.NETStandard.Extensions.Enums
    • EnumExtensions
  • Coree.NETStandard.Extensions.Http.HttpHeader
    • HttpHeadersExtensions
  • Coree.NETStandard.Extensions.Primitives.Bool
    • PrimitivesBoolExtensions
  • Coree.NETStandard.Extensions.Reflection.ServiceProvider
    • ReflectionServiceProviderExtensions
  • Coree.NETStandard.Extensions.ServiceCollection
    • ServiceCollectionExtensions
  • Coree.NETStandard.Extensions.Threading.CancellationToken
    • ThreadingCancellationTokenExtensions
  • Coree.NETStandard.Extensions.Utilities
    • DateTimeExtensions
  • Coree.NETStandard.Extensions.Validations.String
    • ValidationsStringExtensions
  • Coree.NETStandard.HostedServicesCollection
    • HostedServicesCollectionConfig<T>
    • IHostedServicesCollectionConfig<T>
    • ServiceCollectionExtensions
    • ServiceProviderExtensions
  • Coree.NETStandard.Serilog
    • ConditionalLevelSink
    • CustomTheme
    • LoggerSinkConfigurationExtensions
    • OutputTemplates
    • ServiceCollectionExtensions
    • SourceContextShortEnricher
  • Coree.NETStandard.Services.DebugManagement
    • DebugService
    • IDebugService
  • Coree.NETStandard.Services.DirectoryOperationsManagement
    • DirectoryOperationsService
    • IDirectoryOperationsService
  • Coree.NETStandard.Services.FileManagement
    • FileService
    • IFileService
  • Coree.NETStandard.Services.FileOperationsManagement
    • FileOperationsService
    • FileOperationsService.FileSystemEntry
    • FileOperationsService.FileSystemInformation
    • FileOperationsService.VerifiedCopyStatus
    • IFileOperationsService
  • Coree.NETStandard.Services.HashManagement
    • HashService
    • IHashService
  • Coree.NETStandard.Services.NetworkManagement
    • INetworkService
    • NetworkService
    • NetworkService.IpAdressInformation
    • NetworkService.NetworkInterfaceDetail
  • Coree.NETStandard.Services.ProcessManagement
    • IProcessService
    • ProcessRunExitCodeState
    • ProcessRunResult
    • ProcessService
  • Coree.NETStandard.Services.RuntimeInsightsManagement
    • IRuntimeInsightsService
    • RuntimeInsightsService
  • Coree.NETStandard.SpectreConsole
    • CommandAppExtensions
    • HostBuilderExtensions
    • ServiceCollectionExtensions
    • SpectreConsoleHostedService
    • SpectreConsoleHostedService.ExitCode
    • SpectreConsoleTypeRegistrar
    • SpectreConsoleTypeResolver
  • Coree.NETStandard.UnderConstruction
    • DbContextExtensions
    • HttpClientStatic
    • HttpClientStatic.HttpClientResponse
    • HttpClientStatic.XRate
    • HttpClientStatic.XRateGroup
    • HttpClientStatic.XRateItem
    • IScheduleProvider
    • IntervalScheduleProvider
    • LimitedHistory<T>
    • ScheduleCombiner
    • Scheduler
    • Scheduler.TickerEventArgs
    • Scheduler.TickerEventDelegate
    • Scheduler2
    • Scheduler2.TickerEventArgs
    • Scheduler2.TickerEventDelegate
    • Scheduler3
    • Scheduler3.TickerEventArgs
    • Scheduler3.TickerEventDelegate
    • SqlliteMemoryContext
    • SqlliteMemoryContext.UserDataDto
    • TimedEntry<T>
    • Timing
    • Timing.Ticker
    • Timing.Ticker.TickerEventArgs
    • Timing.TickerSync
    • WeekDayAtScheduleProvider
  • Coree.NETStandard.Utilities
    • EventSubscription
    • MainContext

Class MainContext

Provides utility methods for managing the application's execution context, typically used within the Program.Main entry point.

Inheritance
object
MainContext
Inherited Members
object.Equals(object)
object.Equals(object, object)
object.GetHashCode()
object.GetType()
object.MemberwiseClone()
object.ReferenceEquals(object, object)
object.ToString()
Namespace: Coree.NETStandard.Utilities
Assembly: Coree.NETStandard.dll
Syntax
public static class MainContext

Methods

| Edit this page View Source

EnsureSingleInstance(Action, bool)

Ensures that only a single instance of the application is running. If a duplicate instance is detected, it executes a specified action and optionally exits the application.

Declaration
public static void EnsureSingleInstance(Action onDuplicateInstance, bool exit = true)
Parameters
Type Name Description
Action onDuplicateInstance

An Action to be executed if a duplicate instance is found. This action is intended to provide a way to notify the user or log the event of a duplicate instance attempt.

bool exit

A boolean value indicating whether to exit the application if a duplicate instance is detected. Defaults to true, causing the application to exit.

Remarks

This method attempts to create a named Mutex based on the application's entry assembly name. If the mutex cannot be created because it already exists, this indicates that an instance of the application is already running.

| Edit this page View Source

IsDebugBuild()

Determines if the current build is a debug build.

Declaration
public static bool IsDebugBuild()
Returns
Type Description
bool

A boolean value indicating whether the current build has debugging features enabled, typically signifying a debug build.

Remarks

This method checks for the presence of the DebuggableAttribute on the entry assembly and examines if JIT tracking is enabled, which is usually the case for builds compiled in a debug configuration. It's a useful check for altering behavior based on the build configuration without relying on preprocessor directives.

| Edit this page View Source

TryGetAppName()

Tries to get the application name from various sources.

Declaration
public static string? TryGetAppName()
Returns
Type Description
string

The application name, or null if it cannot be determined.

Examples
var appName = TryGetAppName();
| Edit this page View Source

TryGetOrCreateAppNameDirectory(string[]?, bool, string[]?, bool)

Attempts to get or create the application name directory.

Optional array of base directories to search or create the application name directory in. If not provided, default directories will be used. Indicates whether to use a startup-specific application location. Optional array of default directories to ensure they exist within the application directory. Indicates whether to throw an exception if the operation fails. The path to the application name directory, or null if not found or created.
var configDir = MainContext.TryGetOrCreateAppNameDirectory();
Declaration
public static DirectoryInfo? TryGetOrCreateAppNameDirectory(string[]? baseDirectories = null, bool useStartupAppLocation = false, string[]? defaultDirectories = null, bool throwIfFails = false)
Parameters
Type Name Description
string[] baseDirectories
bool useStartupAppLocation
string[] defaultDirectories
bool throwIfFails
Returns
Type Description
DirectoryInfo
| Edit this page View Source

TryGetPrimaryFileLocation()

Attempts to identify and return the primary file location of the currently executing application.

Declaration
public static string? TryGetPrimaryFileLocation()
Returns
Type Description
string

The file path of the main module if its name matches the domain, or the location of the entry or calling assembly. Returns null if none of these locations can be determined.

Remarks

This method first tries to match the main executable's name with the current domain name. If no match is found, it attempts to retrieve the location from the entry assembly or, if that is not available, from the calling assembly. This method is useful for applications that need to determine the path of the currently running executable or assembly.

  • Edit this page
  • View Source
In this article
Back to top