{"id":15060157,"url":"https://github.com/arxone/mradvice","last_synced_at":"2026-06-16T13:00:54.545Z","repository":{"id":26661008,"uuid":"30117370","full_name":"ArxOne/MrAdvice","owner":"ArxOne","description":".NET aspect weaver (build task under NuGet package)","archived":false,"fork":false,"pushed_at":"2026-03-02T17:48:47.000Z","size":7645,"stargazers_count":321,"open_issues_count":22,"forks_count":48,"subscribers_count":30,"default_branch":"master","last_synced_at":"2026-06-04T13:06:09.715Z","etag":null,"topics":["advice","aop","aspects","assembly","inject-aspects"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"mjhea0/hibbert-django","license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ArxOne.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2015-01-31T16:06:34.000Z","updated_at":"2026-05-29T19:31:44.000Z","dependencies_parsed_at":"2024-01-08T15:54:01.869Z","dependency_job_id":"a75a54f5-ef56-43d3-a19d-31240c55c86e","html_url":"https://github.com/ArxOne/MrAdvice","commit_stats":{"total_commits":723,"total_committers":9,"mean_commits":80.33333333333333,"dds":"0.051175656984785656","last_synced_commit":"4b9a1a83623746f912eee76b92b54518630b6430"},"previous_names":["arxone/weavisor"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ArxOne/MrAdvice","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ArxOne%2FMrAdvice","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ArxOne%2FMrAdvice/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ArxOne%2FMrAdvice/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ArxOne%2FMrAdvice/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ArxOne","download_url":"https://codeload.github.com/ArxOne/MrAdvice/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ArxOne%2FMrAdvice/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34406824,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-16T02:00:06.860Z","response_time":126,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["advice","aop","aspects","assembly","inject-aspects"],"created_at":"2024-09-24T22:53:48.286Z","updated_at":"2026-06-16T13:00:54.491Z","avatar_url":"https://github.com/ArxOne.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Mr. Advice\n\n## Summary\n\nMr. Advice is an open source (and free of charge) alternative to PostSharp (which is still far more advanced, see https://www.postsharp.net).  \nIt intends to inject aspects at build-time. Advices are written in the form of attributes, and marking methods with them makes the pointcut, resulting in a nice and easy aspect injection.  \nMore information about what is an aspect at [Wikipedia](https://en.wikipedia.org/wiki/Aspect-oriented_programming).  \n\nMr. Advice can weave assemblies for:\n\n* .NET framework ≥4.6.1 / Mono\n* .NET ≥5\n* .NET Standard 2.0\n\nMr. Advice allows you to:\n* Advise methods or parameters, at assembly, type, method or parameter level\n* Advice types (at assembly startup)\n* Introduce fields\n* Advise Mr. Advice (and this is **BIG**) at weaving-time (during build step), so you can rename methods as they are advised, add properties, etc.\n\n## How it works\n\nIt is available as a [![NuGet Status](https://img.shields.io/nuget/v/MrAdvice.svg?style=flat-square)](https://www.nuget.org/packages/MrAdvice) package. There is also an automatic build with tests at appveyor. The current status is [![Build status](https://ci.appveyor.com/api/projects/status/96i8xbxf954x79vw?svg=true)](https://ci.appveyor.com/project/picrap/mradvice)\n\n\n## Philosophy\n\nCurrently, MrAdvice won't bring you any aspect out-of-the-box.\nThis means you'll have to write your own aspects (however you can see below other packages using Mr. Advice).  \nSo it brings us to the next chapter, which is...\n\n## How to implement your own aspects\n\n### In a nutshell\n\nHere is the minimal sample:\n```csharp\npublic class MyProudAdvice : Attribute, IMethodAdvice\n{\n    public void Advise(MethodAdviceContext context)\n    {\n        // do things you want here\n        context.Proceed(); // this calls the original method\n        // do other things here\n    }\n}\n```\nYou then just need to mark the method(s) with the attribute and that's it, your aspect is injected!\n\n```csharp\n[MyProudAdvice]\npublic void MyProudMethod()\n{\n}\n```\n\n### More details\n\nYour aspects can be injected at assembly, type or method level, simply by setting the attribute:\n\n* When an aspect is injected at asembly level, all methods of all types are weaved.\n* When the aspect is injected at type level, all of its methods are weaved.\n* And of course, if the aspect is injected on a method, only the method is weaved.\n\n## Other projects using Mr. Advice\n\nNuGet packages:\n * [MrAdvice.MVVM](https://github.com/ArxOne/MrAdvice.MVVM) and its [NuGet package](https://www.nuget.org/packages/MrAdvice.MVVM/), an MVVM implementation using aspects.\n * [Persistence](https://github.com/ArxOne/Persistence) and its [NuGet package](https://www.nuget.org/packages/ArxOne.Persistence/), a library that helps persisting properties in registry with a simple attribute.\n\nMiscellaneous projects:\n\n * [The Blue Dwarf](https://github.com/picrap/BlueDwarf), a tunneling anti-censorship local proxy.\n\n## Contact and links\n\nProject owner is [picrap](https://github.com/picrap), feel free to drop a mail :email:.  \nProject company is [Arx One](https://arx.one), a french company editor of backup software solutions.  \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Farxone%2Fmradvice","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Farxone%2Fmradvice","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Farxone%2Fmradvice/lists"}