Jinget.Core.DiScanner 6.2.19-preview036

Prefix Reserved
This is a prerelease version of Jinget.Core.DiScanner.
There is a newer version of this package available.
See the version list below for details.
dotnet add package Jinget.Core.DiScanner --version 6.2.19-preview036
                    
NuGet\Install-Package Jinget.Core.DiScanner -Version 6.2.19-preview036
                    
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="Jinget.Core.DiScanner" Version="6.2.19-preview036" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Jinget.Core.DiScanner" Version="6.2.19-preview036" />
                    
Directory.Packages.props
<PackageReference Include="Jinget.Core.DiScanner" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Jinget.Core.DiScanner --version 6.2.19-preview036
                    
#r "nuget: Jinget.Core.DiScanner, 6.2.19-preview036"
                    
#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.
#:package Jinget.Core.DiScanner@6.2.19-preview036
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Jinget.Core.DiScanner&version=6.2.19-preview036&prerelease
                    
Install as a Cake Addin
#tool nuget:?package=Jinget.Core.DiScanner&version=6.2.19-preview036&prerelease
                    
Install as a Cake Tool

Jinget.Core.DiScanner

Using this library, you can easily register your source code dependencies automatically without the need to write repetitive and annoying codes.

Attention: This package is build based on Autofac assembly scanning.

How to Use:

Download the package from NuGet using Package Manager: Install-Package Jinget.Core.DiScanner You can also use other methods supported by NuGet. Check Here for more information.

Methods

Assembly Selector

Name Description
FromCallingAssembly Will scan for types from the calling assembly
FromExecutingAssembly Will scan for types from the currently executing assembly
FromEntryAssembly Will scan for types from the entry assembly
FromApplicationDependencies Will load and scan all runtime libraries referenced by the currently executing application
FromAssemblyDependencies Will load and scan all runtime libraries referenced by the currently specified assembly
FromDependencyContext Will load and scan all runtime libraries in the given context
FromAssemblyOf Will scan for types from the assembly of type T
FromAssemblies Will scan for types in each Assembly in assemblies

Service Type Selector

Name Description
AsSelf Registers each matching concrete type as itself
FromExecutingAssembly Will scan for types from the currently executing assembly
As Registers each matching concrete type
AsImplementedInterfaces Registers each matching concrete type as all of its implemented interfaces
AsSelfWithInterfaces Registers each matching concrete type as all of its implemented interfaces, by returning an instance of the main type
AsMatchingInterface Registers the type with the first found matching interface name. (e.g. ClassName is matched to IClassName)
UsingAttributes Registers each matching concrete type according to their ServiceDescriptorAttribute

Implementation Type Selector

Name Description
AddClasses Adds all non-abstract classes from the selected assemblies to the Microsoft.Extensions.DependencyInjection.IServiceCollection

Lifetime Selector

Name Description
WithSingletonLifetime Registers each matching concrete type with ServiceLifetime.Singleton lifetime
WithScopedLifetime Registers each matching concrete type with ServiceLifetime.Scoped lifetime
WithTransientLifetime Registers each matching concrete type with ServiceLifetime.Transient lifetime
WithLifetime Registers each matching concrete type with the specified lifetime

Samples

You can view more detailed sample by referring to Jinget.CoreDiScanner.Test project. View UnitTests

Sample 1:

Will scan for types from the calling assembly.

_services.Scan(
    s => s.FromCallingAssembly()
        .AddClasses()
        .AsImplementedInterfaces()
        .WithTransientLifetime());

The above code will scan the calling assembly and registers each matching concrete type as all of its implemented interfaces. WithTransientLifetime indicates that the services should have Transient lifetime.

Sample 2:

Will scan for types from the calling assembly.

_services.Scan(
    s => s.FromExecutingAssembly()
        .AddClasses()
        .AsImplementedInterfaces()
        .WithTransientLifetime());

The above code will scan for types from the currently executing assembly, and registers each matching concrete type as all of its implemented interfaces.

Sample 3:

_services.Scan(
    s => s.FromAssembliesOf(typeof(Sample))
        .AddClasses()
        .AsSelfWithInterfaces()
        .WithSingletonLifetime());

The above code will scan the assembly containing the Sample type and registers each matching concrete type as all of its implemented interfaces, by returning an instance of the main type

Sample 4:

_services.Scan(
    s => s.FromAssemblies(typeof(ICustomInterface).Assembly, typeof(ISelector).Assembly)
        .AddClasses()
        .AsImplementedInterfaces()
        .WithTransientLifetime());

The above code will scan for types in each assembly in assemblies, and registers each matching concrete type as all of its implemented interfaces, by returning an instance of the main type


How to install

In order to install Jinget.Core.DiScanner please refer to nuget.org

Contact Me

👨‍💻 Twitter: https://twitter.com/_jinget

📧 Email: farahmandian2011@gmail.com

📣 Instagram: https://www.instagram.com/vahidfarahmandian

Product Compatible and additional computed target framework versions.
.NET net6.0 is compatible.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  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.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.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
8.0.52 174 10/13/2025
8.0.51 194 9/24/2025
8.0.50 180 9/11/2025
8.0.49 171 9/8/2025
8.0.48 150 9/8/2025
8.0.47 172 9/7/2025
8.0.46 113 8/22/2025
8.0.45 160 7/31/2025
8.0.44 140 7/31/2025
8.0.43 140 7/30/2025
8.0.42 141 7/30/2025
8.0.41 145 7/30/2025
8.0.40 136 7/30/2025
8.0.39 127 7/29/2025
8.0.38 139 7/28/2025
8.0.37 140 7/28/2025
8.0.36 155 7/28/2025
8.0.36-preview005 150 7/27/2025
8.0.35 102 7/19/2025
8.0.34 95 7/18/2025
8.0.33 184 6/29/2025
8.0.32 173 6/29/2025
8.0.31 125 6/28/2025
8.0.30 92 6/27/2025
8.0.29 100 6/27/2025
8.0.28 100 6/27/2025
8.0.27 135 6/27/2025
8.0.26 169 6/21/2025
8.0.25 172 6/15/2025
8.0.25-preview001 160 6/15/2025
8.0.24 174 5/31/2025
8.0.23 175 5/28/2025
8.0.23-preview001 169 5/28/2025
8.0.22 187 5/25/2025
8.0.21 190 5/11/2025
8.0.20 167 5/11/2025
8.0.19 173 5/11/2025
8.0.18 217 4/21/2025
8.0.17 208 4/21/2025
8.0.16 131 4/19/2025
8.0.15 265 4/13/2025
8.0.14 216 4/7/2025
8.0.13 203 4/7/2025
8.0.12 141 4/5/2025
8.0.11 240 3/9/2025
8.0.10 218 3/9/2025
8.0.9 214 3/9/2025
8.0.8 192 2/27/2025
8.0.7 177 2/27/2025
8.0.6 154 2/27/2025
8.0.5 152 2/26/2025
8.0.4 139 2/25/2025
8.0.3 155 2/24/2025
8.0.2 146 2/24/2025
8.0.1 161 2/20/2025
8.0.0 189 1/22/2025
8.0.0-preview013 233 12/19/2024
8.0.0-preview012 134 12/19/2024
8.0.0-preview011 138 12/17/2024
8.0.0-preview010 151 12/16/2024
8.0.0-preview009 144 12/15/2024
8.0.0-preview008 154 11/25/2024
8.0.0-preview007 173 11/11/2024
8.0.0-preview006 138 11/2/2024
8.0.0-preview005 128 11/2/2024
8.0.0-preview004 113 11/1/2024
8.0.0-preview003 129 11/1/2024
8.0.0-preview002 135 11/1/2024
8.0.0-preview001 128 11/1/2024
6.2.23-preview003 129 10/31/2024
6.2.23-preview002 126 10/31/2024
6.2.22 168 10/26/2024
6.2.21 150 10/26/2024
6.2.20 143 10/26/2024
6.2.19-preview037 113 10/14/2024
6.2.19-preview036 130 9/30/2024
6.2.19-preview035 147 9/10/2024
6.2.19-preview034 145 9/9/2024
6.2.19-preview033 149 9/1/2024
6.2.19-preview032 143 9/1/2024
6.2.19-preview031 142 8/31/2024
6.2.19-preview029 135 8/26/2024
6.2.19-preview028 162 8/26/2024
6.2.19-preview027 148 8/26/2024
6.2.19-preview026 177 8/21/2024
6.2.19-preview025 163 8/21/2024
6.2.19-preview024 172 8/19/2024
6.2.19-preview023 163 8/8/2024
6.2.19-preview022 161 8/8/2024
6.2.19-preview021 146 8/5/2024
6.2.19-preview020 154 8/5/2024
6.2.19-preview019 146 8/5/2024
6.2.19-preview018 132 8/3/2024
6.2.19-preview017 103 7/30/2024
6.2.19-preview016 131 7/29/2024
6.2.19-preview015 125 7/29/2024
6.2.19-preview014 118 7/26/2024
6.2.19-preview013 164 7/20/2024
6.2.19-preview012 151 7/20/2024
6.2.19-preview011 164 6/15/2024
6.2.19-preview010 166 6/14/2024
6.2.19-preview009 149 6/14/2024
6.2.19-preview008 163 6/13/2024
6.2.19-preview007 149 6/13/2024
6.2.19-preview006 138 6/13/2024
6.2.19-preview005 141 6/13/2024
6.2.19-preview004 138 6/13/2024
6.2.19-preview003 141 6/11/2024
6.2.19-preview002 142 6/8/2024
6.2.19-preview001 144 6/8/2024
6.2.18 195 6/6/2024
6.2.18-preview020 147 6/6/2024
6.2.18-preview019 149 6/6/2024
6.2.18-preview018 155 6/6/2024
6.2.18-preview017 152 6/2/2024
6.2.18-preview016 154 6/1/2024
6.2.18-preview015 166 5/28/2024
6.2.18-preview014 156 5/28/2024
6.2.18-preview013 158 5/28/2024
6.2.18-preview012 142 5/28/2024
6.2.18-preview011 167 5/26/2024
6.2.18-preview010 172 5/26/2024
6.2.18-preview009 165 5/26/2024
6.2.18-preview008 153 5/26/2024
6.2.18-preview007 187 5/22/2024
6.2.18-preview006 174 5/22/2024
6.2.18-preview005 172 5/19/2024
6.2.18-preview004 169 5/19/2024
6.2.18-preview003 148 5/19/2024
6.2.18-preview002 137 5/19/2024
6.2.17 181 5/19/2024
6.2.16 193 5/18/2024
6.2.15 200 5/18/2024
6.2.14 167 5/18/2024
6.2.13 188 5/17/2024
6.2.12 191 5/17/2024
6.2.11 195 5/17/2024
6.2.10 185 5/17/2024
6.2.9 159 5/12/2024
6.2.8 161 5/9/2024
6.2.7 146 5/9/2024
6.2.6 189 5/7/2024
6.2.5 171 4/24/2024
6.2.4 187 2/1/2024
6.2.3 161 2/1/2024
6.2.2 163 1/31/2024
6.2.1 189 1/23/2024
6.2.0 171 1/23/2024
6.2.0-preview013 147 1/19/2024