JerryImMouse.Project.Utilities 0.0.4

There is a newer version of this package available.
See the version list below for details.
dotnet add package JerryImMouse.Project.Utilities --version 0.0.4                
NuGet\Install-Package JerryImMouse.Project.Utilities -Version 0.0.4                
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="JerryImMouse.Project.Utilities" Version="0.0.4" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add JerryImMouse.Project.Utilities --version 0.0.4                
#r "nuget: JerryImMouse.Project.Utilities, 0.0.4"                
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install JerryImMouse.Project.Utilities as a Cake Addin
#addin nuget:?package=JerryImMouse.Project.Utilities&version=0.0.4

// Install JerryImMouse.Project.Utilities as a Cake Tool
#tool nuget:?package=JerryImMouse.Project.Utilities&version=0.0.4                

Its a pack of utilities created for personal use. Currently it contains:

  • IoC realization
  • Logging
  • Simple Dynamic type factory
  • Simple reflection manager
  • TypeHelpers, CollectionExtensions
  • MathHelper, LockUtilities
  • HttpUtilities

Important Note

All this utilities depends on each other, so make sure you copied all parts of this pack into your project.

Inversion of Control realization

IoC manager built with three simple DependencyContainers which inherits IDependencyCollection interface, so you can choose what realization you need to use in your case. Also provided simple IoCManager to retrieve or inject dependencies into DependencyCollection. You can find its realization here

Important Note

IoCManager is being built using IoCManagerBuilder class, in coupe with InitializeDependencies method So you need to build settings with builder and pass them into InitializeDependencies method

Currently there are three realizations of IDependencyCollection interface:

FrozenDependencyCollection

Uses FrozenDictionary to store dependency types and instances. Created for fast searching values in it. FrozenDictionary is immutable, so if I wanted to inject something I had to convert it back to Dictionary and then again to FrozenDictioanary, this operations takes a lot of runtime time(~500 microseconds). So I created another implementation with usual Dictionary for periodical registering. Realization

DependencyCollection

Uses simple Dicionary type to store dependency types and their instances. Created to replace FrozenDictionary because of high speed of adding items. Realization

ReferencedDependencyCollection

Uses FrozenDictionary to store dependency types and instances, BUT it index its values, so if you need to get value by type it can be easily indexed. If you want to know more you can checkout its realization here

Logging

This pack includes "advanced" logging system with ANSI colors for windows consoles and colorless if linux. Also supports logging straight to files, you can specify which handler to use by HandlerFlags enum. If you want to know how to use it look here Logger Realization

Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
0.0.8 116 6/27/2024
0.0.7 97 6/14/2024
0.0.6 87 6/14/2024
0.0.5 95 6/14/2024
0.0.4 100 6/7/2024
0.0.3 98 6/7/2024
0.0.2 88 6/3/2024