Popularity
3.7
Growing
Activity
7.7
Declining
185
29
42

Programming language: C#
Latest version: v2.2.1

Aspect Injector alternatives and similar packages

Based on the "Assembly Manipulation" category

Do you think we are missing an alternative of Aspect Injector or a related project?

Add another 'Assembly Manipulation' Package

README

Aspect Injector

Aspect Injector is an attribute-based framework for creating and injecting aspects into your .net assemblies.

Project Status

NuGet NuGet Pre Release Build Status

Download

> dotnet add package AspectInjector

Features

  • Compile-time injection
  • Injecting Before, After and Around targets
  • Injecting into Methods, Properties, Events
  • Injecting Interface implementaions
  • Supports any project that can reference netstandard2.0 libraries
  • Debugging support
  • Roslyn analyzers for your convenience (only c# currently)

Check out [samples](samples) and [docs](docs)

Requirements

  • .NetCore runtime 2.1.6+

Known Issues / Limitations

  • Unsafe methods are not supported and are silently ignored.
  • You cannot inject code around constructors. Such attempts are silently ignored. You can since 2.2.1!
  • Until Nuget v5 you need to refrecence AspectInjector into every project in your solution. Thus, if VisualStudio >= 2019 && CoreSDK >= 2.1.602 no worries about references else reference AspectInjector directly to projects where aspects are defined or used

Trivia

Create aspect:

[Aspect(Scope.Global)]
[Injection(typeof(LogCall))]
class LogCall : Attribute
{
    [Advice(Kind.Before)]
    public void LogEnter([Argument(Source.Name)] string name)
    {
        Console.WriteLine($"Calling {name}");   //you can debug it  
    }
}

Use it:

[LogCall]
public void Calculate() { }