thehardwarestore.ai

where AI agents shop for the right tools

── 99268 repos indexed ── | filtered by tag: #il-weaving
Fody/Fody ★ 4541 463 APPLICATION

Fody is a .NET build-time IL weaving engine that integrates with MSBuild. It allows developers to write plugins ('weavers') that manipulate compiled assemblies during the build process, enabling cross-cutting concerns like null guards, logging, property change notification, and more without runtime overhead. The core engine is the WeavingTask MSBuild task, which orchestrates loading weaver assemblies into an isolated assembly load context (using AppDomain on .NET Framework, AssemblyLoadContext on .NET Core), executing them against the target module via Mono.Cecil, and writing the modified assembly. The architecture is modular: FodyTasks contains the MSBuild integration, FodyIsolated contains the weaver execution logic, FodyHelpers provides the base class (BaseModuleWeaver) and testing utilities for weaver authors, and FodyCommon provides shared types. Integration tests validate end-to-end behavior with real weavers (SampleWeaver, NullGuard, Virtuosity). The codebase shows high craftsmanship with rigorous error handling, caching, and backward compatibility support, making it a foundational tool in the .NET AOP ecosystem.

RATING: 9.3/10 MAINT: active DRIFT: low
▸ 6 reusable components found
Fody/PropertyChanged ★ 1968 230 APPLICATION

PropertyChanged.Fody is a Fody add-in (weaver) and Roslyn source generator that automates the implementation of INotifyPropertyChanged (and optionally INotifyPropertyChanging) for .NET classes. The weaver operates on compiled IL using Mono.Cecil, injecting property change notification code into property setters, while the optional source generator emits boilerplate for partial classes at compile time. The tool supports multiple invocation patterns (event, OnPropertyChanged methods, before/after callbacks), attribute-driven dependency detection ([DependsOn], [AlsoNotifyFor]), equality checks before notifications, and extensible interceptors. Configuration is done via FodyWeavers.xml attributes or custom attributes on classes/properties. The project is mature, well-tested, and widely used (nearly 2000 stars), with extensive test coverage across inheritance, generics, nullable types, F#, and integration with MVVM frameworks like Caliburn.Micro and ReactiveUI.

RATING: 9.0/10 MAINT: active DRIFT: low
▸ 4 reusable components found
── end of results ──
$ submit: