FunctionBodyRemover 1.0.0

dotnet add package FunctionBodyRemover --version 1.0.0
                    
NuGet\Install-Package FunctionBodyRemover -Version 1.0.0
                    
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="FunctionBodyRemover" Version="1.0.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="FunctionBodyRemover" Version="1.0.0" />
                    
Directory.Packages.props
<PackageReference Include="FunctionBodyRemover" />
                    
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 FunctionBodyRemover --version 1.0.0
                    
#r "nuget: FunctionBodyRemover, 1.0.0"
                    
#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 FunctionBodyRemover@1.0.0
                    
#: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=FunctionBodyRemover&version=1.0.0
                    
Install as a Cake Addin
#tool nuget:?package=FunctionBodyRemover&version=1.0.0
                    
Install as a Cake Tool

DevNines Function Body Remover

.NET 8 License: MIT

A powerful .NET 8 library that creates skeleton copies of codebases by intelligently removing function bodies while preserving API signatures, interfaces, and project structure.

🚀 Key Features

  • Multi-Language Support: C#, JavaScript, Java, Python
  • Smart Processing: Preserves method signatures, properties, attributes, and comments
  • Directory Structure: Maintains original folder hierarchy
  • Configurable Filtering: Exclude specific directories and file patterns
  • Performance Optimized: Async processing with cancellation token support

📦 Installation

dotnet add package FunctionBodyRemover

🛠️ Quick Start

Basic Usage

using FunctionBodyRemover.Extensions;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;

// Configure services
var host = Host.CreateDefaultBuilder()
    .ConfigureServices((context, services) =>
    {
        services.AddFunctionBodyRemover();
    })
    .Build();

// Get the file processor
var fileProcessor = host.Services.GetRequiredService<IFileProcessor>();

// Process a directory
await fileProcessor.ProcessDirectoryAsync(
    sourcePath: @"C:\MyProject", 
    destinationPath: @"C:\MyProject_Skeleton"
);

Custom Configuration

services.AddFunctionBodyRemover(options =>
{
    options.PreserveComments = true;
    options.PreserveAttributes = true;
    options.ExcludedDirectories = new[] { "bin", "obj", "tests" };
    options.ExcludedFilePatterns = new[] { "*.min.js", "*.d.ts" };
});

🔄 Before and After Example

Original C# Code:

public class UserService : IUserService
{
    [Authorize]
    public async Task<User> GetUserAsync(int id)
    {
        var user = await _repository.GetByIdAsync(id);
        if (user == null)
            throw new UserNotFoundException($"User {id} not found");
        return _mapper.Map<User>(user);
    }
}

Processed Skeleton Code:

public class UserService : IUserService
{
    [Authorize]
    public async Task<User> GetUserAsync(int id)
    {
        throw new NotImplementedException();
    }
}

🎯 Use Cases

  • API Documentation: Create clean API reference without implementation details
  • Code Architecture Review: Share code structure without sensitive business logic
  • Learning Resources: Generate skeleton code for educational purposes
  • Code Analysis: Focus on interfaces and signatures for architectural analysis

🌟 Supported Languages

Language Extensions Features Preserved
C# .cs Methods, Properties, Attributes, XML Comments
JavaScript .js Functions, Classes, JSDoc Comments
Java .java Methods, Classes, Annotations, Javadoc
Python .py Functions, Classes, Decorators, Docstrings

📚 Documentation

  • GitHub Repository: DevNines/FunctionBodyRemover
  • API Reference: Available in the repository wiki
  • Sample Projects: Check the examples folder

🤝 Support


Made with ❤️ by the DevNines Team

Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  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
1.0.0 146 8/8/2025