🔌
QualityC#

.NET P/Invoke

by dotnet

.NET P/Invoke is a Quality skill for Claude Code, published by dotnet in skills.

5.2K stars384 forkson dotnet/skillsAdded 2026/08/16Repository updated 2026/08/15
agent-skills
Install in seconds
Install .NET P/Invoke
Copy .NET P/Invoke into your Claude Code skills folder. Run the command in your terminal, or review the source on GitHub before installing.
terminal
npx degit https://github.com/dotnet/skills/tree/main/plugins/dotnet-advanced/skills/dotnet-pinvoke ~/.claude/skills/dotnet-pinvoke

Requires Node.js. Downloads this skill only — not the rest of the repository — into your Claude Code skills folder.

Without Node.js

git clone https://github.com/dotnet/skills.git

Clones the whole repository, then copy the skill’s own directory into your skills folder yourself.

In this catalog

Source file
plugins/dotnet-advanced/skills/dotnet-pinvoke/SKILL.md in dotnet/skills
Installs to
~/.claude/skills/dotnet-pinvoke
Collection
One of 25 skills cataloged from this repository
Category
Quality1354 skills

What .NET P/Invoke does

.NET P/Invoke correctly calls native C/C++ libraries from .NET using DllImport and LibraryImport, covering signatures, strings, memory, SafeHandle, and cross-platform patterns. Use it for writing, reviewing, or debugging native interop code in .NET.

.NET P/Invoke is cataloged under Quality on DirSkills. .NET P/Invoke comes from a repository tagged agent-skills.

Documentation

README

.NET P/Invoke

Calling native code from .NET is powerful but unforgiving. Incorrect signatures, garbled strings, and leaked or freed memory are the most common sources of bugs — all can manifest as intermittent crashes, silent data corruption, or access violations far from the actual defect.

This skill covers both DllImport (available since .NET Framework 1.0) and LibraryImport (source-generated, .NET 7+). When targeting .NET Framework, always use DllImport. When targeting .NET 7+, prefer LibraryImport for new code. When native AOT is a requirement, LibraryImport is the only option.

When to Use This Skill

This is the opening of the README. Read the full README on GitHub.

Frequently asked about .NET P/Invoke

  • What else does dotnet publish alongside .NET P/Invoke?

    .NET P/Invoke is one of 25 skills that DirSkills catalogs from dotnet/skills, the repository it ships in. Its siblings there include ASP.NET Core Web API, Agentic Workflows and Author Blazor Component. Each one is a separate skill with its own page in this directory, installs the same way .NET P/Invoke does, and is maintained by dotnet in that same repository. The rest of the collection is listed on the dotnet/skills page.

  • How does .NET P/Invoke compare to other Quality skills?

    .NET P/Invoke ranks #289 by stars among the 1354 Quality skills in this catalog. The most-starred ones next to it are Benchmark, Benchmark Optimization Loop and API Design Patterns. DirSkills ranks by the star count of the repository each skill ships in, so that order reflects how popular those repositories are rather than any review of .NET P/Invoke against them. Open each page to compare what they document and how they install.

More from dotnet/skills

.NET P/Invoke is one of 25 skills cataloged on DirSkills from dotnet/skills.

See all 25 skills
🌐
2w ago

ASP.NET Core Web API

ASP.NET Core Web API guides the creation and modification of ASP.NET Core Web API endpoints with correct HTTP semantics, OpenAPI metadata, and error handling. Use it when adding controllers or minimal APIs, defining DTOs, wiring up OpenAPI/Swagger, or configuring global error handling middleware.
DevOps
5.2K384
🔀
2w ago

Agentic Workflows

Agentic Workflows routes requests to design, create, update, debug, or upgrade agentic workflows to the correct prompt files. Use it when a user asks to build or modify agentic workflows in a repository, and follow the matching prompt or skill.
AI Engineering
5.2K384
🧩
2w ago

Author Blazor Component

Author Blazor Component creates or reviews Blazor components (.razor files) with correct architecture for parameters, EventCallback, RenderFragment slots, lifecycle, async patterns, and disposal. Use it when writing new Blazor components that do not involve JavaScript interop, forms, prerendering, or HTTP data fetching.
Frontend
5.2K384
🔗
2w ago

Blazor JS Interop

Blazor JS Interop provides patterns for adding, reviewing, and fixing JavaScript interop in Blazor components. Use it for collocated .razor.js modules, IJSRuntime lifecycle, DotNetObjectReference callbacks, and batching interop calls.
Frontend
5.2K384
💻
2w ago

C# Scripts

C# Scripts runs file-based C# apps with the .NET CLI when the user wants C#/.NET code without creating a project. Use for C# language/API experiments, one-file C# apps, and small multi-file C# apps using #:include/#:exclude or #:ref.
Automation
5.2K384
📝
2w ago

Collect User Input

Collect User Input builds forms, validates data, and reacts to user input in Blazor apps. Use it for adding forms, search boxes, filter panels, inline editing, data-entry UI, file uploads, and validation with DataAnnotations or custom rules.
Frontend
5.2K384