{"id":23024842,"url":"https://github.com/archomeda/disposegenerator","last_synced_at":"2026-05-07T18:44:51.107Z","repository":{"id":144113861,"uuid":"389781777","full_name":"Archomeda/DisposeGenerator","owner":"Archomeda","description":"A C# source generator that automatically implements IDisposable and IAsyncDisposable","archived":false,"fork":false,"pushed_at":"2021-12-16T23:21:37.000Z","size":64,"stargazers_count":1,"open_issues_count":1,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-02-08T10:31:19.552Z","etag":null,"topics":["csharp","csharp-sourcegenerator","dotnet"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Archomeda.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}},"created_at":"2021-07-26T22:15:15.000Z","updated_at":"2023-12-20T05:39:24.000Z","dependencies_parsed_at":"2024-01-29T09:18:43.773Z","dependency_job_id":"f15b3bf3-fdcf-4b7c-8b22-2c9a1d6545ad","html_url":"https://github.com/Archomeda/DisposeGenerator","commit_stats":null,"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Archomeda%2FDisposeGenerator","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Archomeda%2FDisposeGenerator/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Archomeda%2FDisposeGenerator/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Archomeda%2FDisposeGenerator/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Archomeda","download_url":"https://codeload.github.com/Archomeda/DisposeGenerator/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246883845,"owners_count":20849543,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["csharp","csharp-sourcegenerator","dotnet"],"created_at":"2024-12-15T13:32:54.578Z","updated_at":"2026-05-07T18:44:51.077Z","avatar_url":"https://github.com/Archomeda.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# DisposeGenerator\n[![GitHub CI](https://img.shields.io/github/workflow/status/Archomeda/DisposeGenerator/CI/master?label=CI\u0026logo=GitHub)](https://github.com/Archomeda/DisposeGenerator/actions?workflow=CI)\n[![NuGet](https://img.shields.io/nuget/v/DisposeGenerator.svg?label=NuGet\u0026logo=nuget)](https://www.nuget.org/packages/DisposeGenerator)\n[![NuGet Downloads](https://img.shields.io/nuget/dt/DisposeGenerator.svg?label=Downloads\u0026logo=nuget)](https://www.nuget.org/packages/DisposeGenerator)\n\nDisposeGenerator is a C# source generator that automatically implements IDisposable and IAsyncDisposable for you.\n\nManually implementing proper [IDisposable](https://docs.microsoft.com/en-us/dotnet/standard/garbage-collection/implementing-dispose) and [IAsyncDisposable](https://docs.microsoft.com/en-us/dotnet/standard/garbage-collection/implementing-disposeasync) patterns tends to bring a lot of boilerplate code.\nThis source generator aims to alleviate that problem so that you don't have to think about this pattern anymore.\n\nKeep in mind that this project is in an early stage, and that bugs may occur.\n\n## Limitations\n- Other source generators that add additional members to a partial class, are not detected\n- Nested IDisposable/IAsyncDisposable classes are not supported\n- Inheritance is done on best effort, which means that the generator expects the base class to properly implement Microsoft's [IDisposable](https://docs.microsoft.com/en-us/dotnet/standard/garbage-collection/implementing-dispose) and [IAsyncDisposable](https://docs.microsoft.com/en-us/dotnet/standard/garbage-collection/implementing-disposeasync) and/or [IAsyncDisposable](https://docs.microsoft.com/en-us/dotnet/standard/garbage-collection/implementing-disposeasync) pattern.\n- Probably more that I have overlooked...\n\n## Installing\nYou can find the library on [NuGet](https://www.nuget.org/packages/DisposeGenerator/). Or, alternatively, you can install it by running `dotnet add package DisposeGenerator` in a console, or `Install-Package DisposeGenerator` in the package manager console.\n\n## Usage\nTODO\n\n## Compiling\nThis project has been developed and tested in Visual Studio 2019 (16.10).\n\n## Contributing\nBecause a proper IDisposable or IAsyncDisposable pattern is quite complicated, any contribution that adds features or fixes bugs are very much welcome.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Farchomeda%2Fdisposegenerator","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Farchomeda%2Fdisposegenerator","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Farchomeda%2Fdisposegenerator/lists"}