.NET Types Explorer
Proporciona información detallada de tipos de proyectos .NET, incluyendo exploración de ensamblados, reflexión de tipos e integración con NuGet para agentes de codificación de IA.
Documentación
Servidor MCP .NET Types Explorer
Un servidor de Model Context Protocol (MCP) que proporciona información detallada de tipos de proyectos .NET para agentes de codificación de IA.
Descripción general
El servidor MCP .NET Types Explorer es una herramienta potente diseñada para ayudar a los agentes de codificación de IA a comprender y trabajar con bases de código .NET. Proporciona una forma estructurada de explorar ensamblados, espacios de nombres y tipos en proyectos .NET, facilitando que los agentes de IA generen sugerencias de código precisas y conscientes del contexto.
El servidor utiliza reflexión para extraer información detallada de tipos de ensamblados .NET compilados, incluyendo clases, interfaces, métodos, propiedades, campos y eventos. Esta información se pone a disposición a través de un conjunto de herramientas que los agentes de IA pueden utilizar para explorar la base de código de manera sistemática.
Contribuciones
¡Las contribuciones son bienvenidas! No dudes en enviar una Solicitud de Extracción (Pull Request).
Características
- Exploración de ensamblados: Recupera una lista de todos los ensamblados referenciados por un proyecto .NET
- Exploración de espacios de nombres: Descubre todos los espacios de nombres dentro de ensamblados especificados
- Exploración de tipos: Obtén información detallada sobre tipos dentro de espacios de nombres especificados, incluyendo:
- Nombres completos de tipos con parámetros genéricos
- Interfaces implementadas
- Constructores con parámetros
- Métodos con tipos de retorno y parámetros
- Propiedades con tipos y descriptores de acceso
- Campos con tipos y modificadores
- Eventos con tipos de controlador
- Nombres completos de tipos con parámetros genéricos
- Búsqueda de paquetes NuGet: Busca paquetes NuGet en nuget.org con filtrado y paginación
- Información de versiones de paquetes NuGet: Recupera el historial de versiones e información de dependencias para paquetes NuGet específicos
- Resolución de ensamblados configurable: Resuelve ensamblados desde la salida de compilación, la caché global de paquetes NuGet (solo restauración, sin necesidad de compilar), o automáticamente prueba ambas opciones
- Filtrado: Aplica filtros con comodines para reducir los resultados
- Paginación: Maneja grandes conjuntos de resultados con paginación integrada
Hoja de ruta
- Agregar integración con NuGet para proporcionar información sobre versiones reales de paquetes
- Migrar al SDK oficial de Model Context Protocol para C# (modelcontextprotocol/csharp-sdk)
- Soporte para múltiples fuentes de paquetes NuGet (feeds personalizados/privados)
- Agregar capacidades de construcción de grafos de dependencias
- Mejorar el escenario de múltiples proyectos
Requisitos previos
- SDK de .NET 10.0 o posterior
- Un proyecto .NET que desees explorar
Configuración
Fuentes de paquetes NuGet
El servidor admite consultar múltiples fuentes de paquetes NuGet simultáneamente. Configura fuentes personalizadas en appsettings.json:
{
"Tools": {
"DefaultPageSize": 20,
"IntendResponse": false,
"NuGetSources": [
{
"Name": "nuget.org",
"Url": "https://api.nuget.org/v3/index.json",
"Enabled": true
},
{
"Name": "MyPrivateFeed",
"Url": "https://my-company.com/nuget/v3/index.json",
"Enabled": true
},
{
"Name": "dotnet-core (MyGet)",
"Url": "https://dotnet.myget.org/F/dotnet-core/api/v3/index.json",
"Enabled": true,
"Comment": "Example: MyGet public feed for .NET Core preview packages"
}
]
}
}
Opciones de configuración:
- Nombre: Nombre descriptivo para la fuente de paquetes
- URL: URL completa al endpoint de la API v3 de NuGet (debe terminar con
/v3/index.json) - Habilitado: Establece en
falsepara deshabilitar temporalmente una fuente sin eliminarla
Comportamiento:
- Todas las fuentes habilitadas se consultan en paralelo para un mejor rendimiento
- Los resultados se deduplican automáticamente por ID de paquete y versión
- Si una fuente falla, el servidor continúa con las fuentes restantes
- Comportamiento de fuente predeterminada: nuget.org se agrega SOLO si no hay fuentes configuradas en
appsettings.json
Prioridad de fuentes y deduplicación:
Cuando el mismo paquete se encuentra en múltiples fuentes, el servidor utiliza una estrategia basada en prioridad:
- La prioridad se determina por orden: Las fuentes listadas primero en la configuración tienen mayor prioridad
- Resultados deterministas: La primera fuente en la lista siempre tiene prioridad para paquetes duplicados
- Consultas paralelas: A pesar de la ejecución en paralelo, los resultados se procesan en orden de prioridad
- Consistencia de metadatos: Los metadatos del paquete (descripción, recuento de descargas, etc.) siempre provienen de la fuente de mayor prioridad que contenga ese paquete
Ejemplo:
{
"NuGetSources": [
{ "Name": "Internal", "Url": "https://internal.company.com/nuget/v3/index.json", "Enabled": true },
{ "Name": "nuget.org", "Url": "https://api.nuget.org/v3/index.json", "Enabled": true }
]
}
En esta configuración, si un paquete existe en ambas fuentes, se utilizará la información de "Interna".
Modo de resolución de ensamblados
El servidor admite diferentes estrategias para localizar ensamblados de paquetes. Configura esto en appsettings.json:
{
"Tools": {
"AssemblyResolutionMode": "NuGetCache"
}
}
| Modo | Comportamiento |
|---|---|
BuildOutput | Predeterminado. Resuelve ensamblados desde el directorio de salida de compilación (por ejemplo, bin/Debug/net10.0/). Requiere una compilación completa. |
NuGetCache | Resuelve ensamblados directamente desde la caché global de paquetes NuGet. Solo requiere dotnet restore, sin necesidad de compilar. Los tipos de proyecto se omiten correctamente. |
Auto | Intenta primero con la salida de compilación, y recurre a la caché de NuGet si el ensamblado no se encuentra en la salida de compilación. |
El modo NuGetCache es particularmente útil cuando necesitas principalmente explorar APIs de paquetes de terceros sin esperar un ciclo completo de compilación. La ruta de la carpeta de paquetes globales se lee automáticamente desde project.assets.json.
Instalación
Opción 1: Instalación nativa
- Clona el repositorio
- Compila el proyecto:
dotnet build -c Release - Publica el proyecto:
Reemplazadotnet publish -c Release -r <runtime-identifier> --self-contained false<runtime-identifier>con tu plataforma objetivo (por ejemplo,win-x64,linux-x64,osx-x64).
Opción 2: Docker
El servidor está disponible como un contenedor Docker, proporcionando mejor aislamiento y despliegue más fácil:
- Extrae la imagen de Docker Hub:
docker pull vrogozhin/dotnet-types-explorer-mcp:latest - O compila localmente:
git clone https://github.com/V0v1kkk/DotNetMetadataMcpServer.git cd DotNetMetadataMcpServer docker build -t dotnet-types-explorer-mcp . - Ejecuta el contenedor:
docker run --rm -i \ -v /path/to/your/dotnet/projects:/workspace \ vrogozhin/dotnet-types-explorer-mcp:latest
Beneficios del despliegue con Docker:
- No es necesario instalar el SDK de .NET en tu máquina
- El entorno aislado previene conflictos
- Comportamiento consistente en diferentes sistemas operativos
- Incluye MSBuild y todas las dependencias requeridas
- Actualizaciones fáciles al extraer la imagen más reciente
Configuración
Configuración nativa
Para usar el Servidor MCP .NET Types Explorer con un agente de IA, debes configurarlo en tu archivo de configuración de MCP. Aquí tienes un ejemplo de configuración:
{
"mcpServers": {
"dotnet-types-explorer": {
"command": "/path/to/DotNetMetadataMcpServer",
"args": [ "--homeEnvVariable", "/home/user" ],
"disabled": false,
"alwaysAllow": [],
"timeout": 300
}
}
}
Reemplaza /path/to/DotNetMetadataMcpServer con la ruta real al ejecutable publicado, y /home/user con tu directorio de inicio.
Configuración de Docker
Para el despliegue con Docker, configura tu cliente MCP de la siguiente manera:
{
"mcpServers": {
"dotnet-types-explorer": {
"command": "docker",
"args": [
"run",
"--rm",
"-i",
"-v",
"/path/to/your/dotnet/projects:/workspace",
"vrogozhin/dotnet-types-explorer-mcp:latest"
],
"disabled": false,
"alwaysAllow": [],
"timeout": 300
}
}
}
Reemplaza /path/to/your/dotnet/projects con el directorio que contiene tus proyectos .NET. El contenedor tendrá acceso a todos los proyectos en este directorio.
Limitaciones importantes
- El requisito de compilación depende del modo de resolución. En el modo
BuildOutput(predeterminado), el proyecto debe compilarse antes del escaneo. En el modoNuGetCache, solo se requieredotnet restore— el servidor resuelve los ensamblados de paquetes directamente desde la caché global de paquetes NuGet. Los tipos específicos del proyecto solo están disponibles cuando el proyecto ha sido compilado. - La herramienta no sigue referencias a otros proyectos. Solo inspecciona el proyecto especificado y sus dependencias NuGet. Si necesitas analizar múltiples proyectos, deberás escanear cada uno por separado.
Cómo se localizan las salidas del proyecto
Al escanear un proyecto, el servidor necesita la ruta del ensamblado compilado. MsBuildHelper evalúa el proyecto e intenta localizar el ensamblado de salida probando configuraciones en este orden:
- la configuración solicitada (por defecto Debug), luego
- Release, y si aún no se encuentra,
- recurre a verificar Debug nuevamente como valor predeterminado seguro.
La primera salida existente gana. Si no se encuentra ninguna salida, se asume una ruta predeterminada razonable y se registra una advertencia. Esto hace que las ejecuciones locales (a menudo Debug) y las ejecuciones de CI (a menudo Release) se comporten de manera consistente. Asegúrate de compilar el proyecto en una de estas configuraciones antes de escanear.
Uso
El servidor proporciona cinco herramientas principales que los agentes de IA pueden utilizar:
- ReferencedAssembliesExplorer: Recupera ensamblados referenciados de un proyecto .NET
- NamespacesExplorer: Recupera espacios de nombres de ensamblados especificados
- NamespaceTypes: Recupera tipos de espacios de nombres especificados
- NuGetPackageSearch: Busca paquetes NuGet en nuget.org con filtrado y paginación
- NuGetPackageVersions: Recupera el historial de versiones e información de dependencias para paquetes NuGet específicos
Esta herramienta ha sido probada con la extensión Roo Code para Visual Studio, un asistente de codificación de IA que admite el Model Context Protocol. Puedes encontrar más información sobre Roo Code en GitHub.
Es posible usar el archivo
.clinerulespara instruir a tu asistente de codificación a usar el servidor MCP.
Instrucciones para asistentes de codificación de IA
Si trabajas con proyectos .NET que tienen referencias a paquetes NuGet y necesitas escribir código usando esos paquetes, debes explorar la API de esos paquetes sistemáticamente usando el servidor MCP Dotnet Type Explorer. Esto es especialmente importante cuando no estás familiarizado con la API del paquete o cuando la documentación es limitada.
Al trabajar con un proyecto .NET:
- Primero, asegúrate de que el proyecto esté compilado. Esta herramienta depende de ensamblados compilados para extraer información de tipos.
- Comienza recuperando todos los ensamblados referenciados por el archivo del proyecto usando la herramienta ReferencedAssembliesExplorer. Esto te da una lista de todos los ensamblados disponibles.
- Concéntrate en bibliotecas de terceros y paquetes NuGet, no en los tipos de la Biblioteca de Clases Base (BCL) como System.* o Microsoft.* que están bien documentados en otros lugares.
- Una vez que hayas identificado los ensamblados relevantes, usa la herramienta NamespacesExplorer para descubrir los espacios de nombres dentro de esos ensamblados. Esto te ayuda a entender cómo está organizada la biblioteca.
- Después de identificar los espacios de nombres relevantes, usa la herramienta NamespaceTypes para recuperar información detallada sobre los tipos dentro de esos espacios de nombres que te interesan. Esto incluye métodos, propiedades, campos, eventos y más.
- Usa el filtrado solo cuando estés abrumado por la cantidad de datos o cuando sepas exactamente lo que estás buscando.
- Si necesitas encontrar paquetes NuGet específicos o explorar sus versiones y dependencias, usa la herramienta NuGetPackageSearch para buscar paquetes por nombre o palabras clave.
- Cuando necesites información detallada sobre un paquete NuGet específico, incluyendo su historial de versiones y dependencias, usa la herramienta NuGetPackageVersions. Esto es particularmente útil cuando necesitas comprender requisitos de compatibilidad o cadenas de dependencias.
- Usa las capacidades de filtrado de las herramientas NuGet para reducir los resultados al buscar versiones específicas o paquetes con patrones de nombres particulares.
Recuerda que esta herramienta solo inspecciona el proyecto especificado y sus dependencias NuGet. No sigue referencias a otros proyectos en la solución. Si necesitas analizar múltiples proyectos, deberás escanear cada uno por separado.
Este enfoque de arriba hacia abajo (ensamblados → espacios de nombres → tipos) es la forma más eficiente de explorar y comprender bibliotecas .NET cuando necesitas escribir código que las use. Es particularmente valioso para bibliotecas de terceros donde la API podría no ser inmediatamente obvia o estar bien documentada. Las herramientas NuGet complementan este enfoque al proporcionar acceso directo a la información de paquetes sin requerir que los paquetes ya estén referenciados en el proyecto.
Cómo funciona
El servidor utiliza el siguiente proceso para extraer información de tipos:
- Evaluación del proyecto: Usa MSBuild para evaluar el archivo del proyecto y encontrar el ensamblado compilado
- Carga de ensamblados: Carga el ensamblado compilado y sus dependencias
- Reflexión de tipos: Usa reflexión para extraer información detallada sobre los tipos
- Filtrado y paginación: Aplica filtros y paginación a los resultados
- Formato de respuesta: Formatea los resultados como JSON y los devuelve al cliente
Referencia de API
ReferencedAssembliesExplorer
Recupera ensamblados referenciados basados en filtros y paginación.
Esquema de entrada:
{
"type": "object",
"properties": {
"ProjectFileAbsolutePath": {
"type": "string"
},
"PageNumber": {
"type": "integer"
},
"FullTextFiltersWithWildCardSupport": {
"type": "array",
"items": {
"type": [
"string",
"null"
]
}
}
},
"required": [
"ProjectFileAbsolutePath"
]
}
Respuesta:
{
"AssemblyNames": ["Assembly1", "Assembly2", ...],
"CurrentPage": 1,
"AvailablePages": [1, 2, ...]
}
NamespacesExplorer
Recupera espacios de nombres de ensamblados especificados con soporte para filtros y paginación.
Esquema de entrada:
{
"type": "object",
"properties": {
"ProjectFileAbsolutePath": {
"type": "string"
},
"AssemblyNames": {
"type": "array",
"items": {
"type": [
"string",
"null"
]
}
},
"PageNumber": {
"type": "integer"
},
"FullTextFiltersWithWildCardSupport": {
"type": "array",
"items": {
"type": [
"string",
"null"
]
}
}
},
"required": [
"ProjectFileAbsolutePath"
]
}
Respuesta:
{
"Namespaces": ["Namespace1", "Namespace2", ...],
"CurrentPage": 1,
"AvailablePages": [1, 2, ...]
}
NamespaceTypes
Recupera tipos de espacios de nombres especificados con soporte para filtros y paginación.
Esquema de entrada:
{
"type": "object",
"properties": {
"ProjectFileAbsolutePath": {
"type": "string"
},
"Namespaces": {
"type": "array",
"items": {
"type": [
"string",
"null"
]
}
},
"PageNumber": {
"type": "integer"
},
"FullTextFiltersWithWildCardSupport": {
"type": "array",
"items": {
"type": [
"string",
"null"
]
}
}
},
"required": [
"ProjectFileAbsolutePath"
]
}
Respuesta:
{
"TypeData": [
{
"FullName": "Namespace.TypeName",
"Implements": ["Interface1", "Interface2", ...],
"Constructors": ["(param1, param2)", ...],
"Methods": ["ReturnType MethodName(param1, param2)", ...],
"Properties": ["PropertyType PropertyName { get; set; }", ...],
"Fields": ["FieldType FieldName", ...],
"Events": ["event EventHandlerType EventName", ...]
},
...
],
"CurrentPage": 1,
"AvailablePages": [1, 2, ...]
}
NuGetPackageSearch
Busca paquetes NuGet en nuget.org con soporte para filtrado y paginación.
Esquema de entrada:
{
"type": "object",
"properties": {
"SearchQuery": {
"type": "string"
},
"IncludePrerelease": {
"type": "boolean"
},
"PageNumber": {
"type": "integer"
},
"FullTextFiltersWithWildCardSupport": {
"type": "array",
"items": {
"type": [
"string",
"null"
]
}
}
},
"required": [
"SearchQuery"
]
}
Respuesta:
{
"Packages": [
{
"Id": "Newtonsoft.Json",
"Version": "13.0.3",
"Description": "Json.NET is a popular high-performance JSON framework for .NET",
"Authors": "James Newton-King",
"DownloadCount": 1000000,
"Published": "2023-03-08T00:00:00Z"
},
...
],
"CurrentPage": 1,
"AvailablePages": [1, 2, ...]
}
NuGetPackageVersions
Recupera el historial de versiones e información de dependencias para un paquete NuGet específico.
Esquema de entrada:
{
"type": "object",
"properties": {
"PackageId": {
"type": "string"
},
"IncludePrerelease": {
"type": "boolean"
},
"PageNumber": {
"type": "integer"
},
"FullTextFiltersWithWildCardSupport": {
"type": "array",
"items": {
"type": [
"string",
"null"
]
}
}
},
"required": [
"PackageId"
]
}
Respuesta:
{
"PackageId": "Newtonsoft.Json",
"Versions": [
{
"Id": "Newtonsoft.Json",
"Version": "13.0.3",
"Description": "Json.NET is a popular high-performance JSON framework for .NET",
"Authors": "James Newton-King",
"DownloadCount": 1000000,
"Published": "2023-03-08T00:00:00Z",
"DependencyGroups": [
{
"TargetFramework": ".NETStandard2.0",
"Dependencies": [
{
"Id": "System.Text.Json",
"VersionRange": "6.0.0"
}
]
}
]
},
...
],
"CurrentPage": 1,
"AvailablePages": [1, 2, ...]
}
Escenario de uso de ejemplo
A continuación se muestra un ejemplo de cómo un agente de IA podría usar el servidor MCP .NET Types Explorer para explorar una API de framework de interfaz de usuario:
- Recuperar ensamblados con filtrado:
Respuesta:{ "ProjectFileAbsolutePath": "/home/user/Projects/MyApp/MyApp.csproj", "PageNumber": 1, "FullTextFiltersWithWildCardSupport": ["Avalonia*"] }{ "AssemblyNames": [ "Avalonia", "Avalonia.Controls.ColorPicker", "Avalonia.Controls.DataGrid", "Avalonia.Desktop", "Avalonia.Diagnostics", "Avalonia.Fonts.Inter", "Avalonia.FreeDesktop", "Avalonia.Native", "Avalonia.ReactiveUI", "Avalonia.Remote.Protocol" ], "CurrentPage": 1, "AvailablePages": [1, 2] } - Recuperar espacios de nombres con filtrado dirigido:
Respuesta:{ "ProjectFileAbsolutePath": "/home/user/Projects/MyApp/MyApp.csproj", "AssemblyNames": ["Avalonia"], "PageNumber": 1, "FullTextFiltersWithWildCardSupport": ["*Media*", "*Image*"] }{ "Namespaces": [ "Avalonia.Media", "Avalonia.Media.Transformation", "Avalonia.Media.TextFormatting", "Avalonia.Media.TextFormatting.Unicode", "Avalonia.Media.Immutable", "Avalonia.Media.Imaging", "Avalonia.Media.Fonts" ], "CurrentPage": 1, "AvailablePages": [1] } - Recuperar tipos de un espacio de nombres específico:
Respuesta (parcial):{ "ProjectFileAbsolutePath": "/home/user/Projects/MyApp/MyApp.csproj", "Namespaces": ["Avalonia.Media.Imaging"], "PageNumber": 1, "FullTextFiltersWithWildCardSupport": [] }{ "TypeData": [ { "FullName": "Avalonia.Media.Imaging.Bitmap", "Implements": [ "IBitmap", "IImage", "IDisposable", "IImageBrushSource" ], "Constructors": [ "(String fileName)", "(Stream stream)", "(PixelFormat format, AlphaFormat alphaFormat, IntPtr data, PixelSize size, Vector dpi, Int32 stride)" ], "Methods": [ "static Avalonia.Media.Imaging.Bitmap DecodeToWidth(System.IO.Stream stream, System.Int32 width, Avalonia.Media.Imaging.BitmapInterpolationMode? interpolationMode = null)", "static Avalonia.Media.Imaging.Bitmap DecodeToHeight(System.IO.Stream stream, System.Int32 height, Avalonia.Media.Imaging.BitmapInterpolationMode? interpolationMode = null)", "Avalonia.Media.Imaging.Bitmap CreateScaledBitmap(Avalonia.PixelSize destinationSize, Avalonia.Media.Imaging.BitmapInterpolationMode? interpolationMode = null)", "virtual System.Void Dispose()" ], "Properties": [ "virtual Avalonia.Vector Dpi { get; }", "virtual Avalonia.Size Size { get; }", "virtual Avalonia.PixelSize PixelSize { get; }" ] } ], "CurrentPage": 1, "AvailablePages": [1, 2] } - Aplicar filtros específicos para encontrar tipos relacionados:
Respuesta:{ "ProjectFileAbsolutePath": "/home/user/Projects/MyApp/MyApp.csproj", "Namespaces": ["Avalonia.Platform"], "PageNumber": 1, "FullTextFiltersWithWildCardSupport": ["*Framebuffer*", "*Pixel*"] }{ "TypeData": [ { "FullName": "Avalonia.Platform.ILockedFramebuffer", "Implements": ["IDisposable"], "Methods": [ "abstract System.IntPtr get_Address()", "abstract Avalonia.PixelSize get_Size()", "abstract System.Int32 get_RowBytes()", "abstract Avalonia.Vector get_Dpi()", "abstract Avalonia.Platform.PixelFormat get_Format()" ], "Properties": [ "abstract System.IntPtr Address { get; }", "abstract Avalonia.PixelSize Size { get; }", "abstract System.Int32 RowBytes { get; }", "abstract Avalonia.Vector Dpi { get; }", "abstract Avalonia.Platform.PixelFormat Format { get; }" ] } ], "CurrentPage": 1, "AvailablePages": [1] }
Ejemplos de paquetes NuGet
A continuación se muestran ejemplos de cómo un agente de IA podría usar las herramientas de NuGet para explorar información de paquetes:
- Buscar paquetes NuGet:
{
"SearchQuery": "EntityFrameworkCore",
"IncludePrerelease": false,
"PageNumber": 1,
"FullTextFiltersWithWildCardSupport": []
}
Respuesta:
{
"Packages": [
{
"Id": "Microsoft.EntityFrameworkCore",
"Version": "7.0.0",
"Description": "Entity Framework Core is a lightweight and extensible version of the popular Entity Framework data access technology.",
"Authors": "Microsoft",
"DownloadCount": 42000000,
"Published": "2022-11-08T00:00:00Z"
},
{
"Id": "Microsoft.EntityFrameworkCore.SqlServer",
"Version": "7.0.0",
"Description": "Microsoft SQL Server database provider for Entity Framework Core.",
"Authors": "Microsoft",
"DownloadCount": 38000000,
"Published": "2022-11-08T00:00:00Z"
}
],
"CurrentPage": 1,
"AvailablePages": [1, 2, 3, 4, 5]
}
- Buscar con filtrado:
{
"SearchQuery": "Json",
"IncludePrerelease": false,
"PageNumber": 1,
"FullTextFiltersWithWildCardSupport": ["Newtonsoft*"]
}
Respuesta:
{
"Packages": [
{
"Id": "Newtonsoft.Json",
"Version": "13.0.3",
"Description": "Json.NET is a popular high-performance JSON framework for .NET",
"Authors": "James Newton-King",
"DownloadCount": 1250000000,
"Published": "2023-03-08T00:00:00Z"
},
{
"Id": "Newtonsoft.Json.Bson",
"Version": "1.0.2",
"Description": "Json.NET BSON adds support for reading and writing BSON",
"Authors": "James Newton-King",
"DownloadCount": 120000000,
"Published": "2020-01-01T00:00:00Z"
}
],
"CurrentPage": 1,
"AvailablePages": [1]
}
- Obtener información de versión del paquete:
{
"PackageId": "Newtonsoft.Json",
"IncludePrerelease": false,
"PageNumber": 1,
"FullTextFiltersWithWildCardSupport": []
}
Respuesta:
{
"PackageId": "Newtonsoft.Json",
"Versions": [
{
"Id": "Newtonsoft.Json",
"Version": "13.0.3",
"Description": "Json.NET is a popular high-performance JSON framework for .NET",
"Authors": "James Newton-King",
"DownloadCount": 1250000000,
"Published": "2023-03-08T00:00:00Z",
"DependencyGroups": [
{
"TargetFramework": ".NETStandard2.0",
"Dependencies": []
},
{
"TargetFramework": ".NETFramework4.5",
"Dependencies": []
}
]
},
{
"Id": "Newtonsoft.Json",
"Version": "13.0.2",
"Description": "Json.NET is a popular high-performance JSON framework for .NET",
"Authors": "James Newton-King",
"DownloadCount": 980000000,
"Published": "2022-11-24T00:00:00Z",
"DependencyGroups": [
{
"TargetFramework": ".NETStandard2.0",
"Dependencies": []
},
{
"TargetFramework": ".NETFramework4.5",
"Dependencies": []
}
]
}
],
"CurrentPage": 1,
"AvailablePages": [1, 2, 3, 4, 5]
}
- Obtener una versión específica del paquete con filtrado:
{
"PackageId": "Microsoft.EntityFrameworkCore",
"IncludePrerelease": false,
"PageNumber": 1,
"FullTextFiltersWithWildCardSupport": ["7.0.0"]
}
Respuesta:
{
"PackageId": "Microsoft.EntityFrameworkCore",
"Versions": [
{
"Id": "Microsoft.EntityFrameworkCore",
"Version": "7.0.0",
"Description": "Entity Framework Core is a lightweight and extensible version of the popular Entity Framework data access technology.",
"Authors": "Microsoft",
"DownloadCount": 42000000,
"Published": "2022-11-08T00:00:00Z",
"DependencyGroups": [
{
"TargetFramework": "net6.0",
"Dependencies": [
{
"Id": "Microsoft.Extensions.Caching.Memory",
"VersionRange": "7.0.0"
},
{
"Id": "Microsoft.Extensions.DependencyInjection",
"VersionRange": "7.0.0"
},
{
"Id": "Microsoft.Extensions.Logging",
"VersionRange": "7.0.0"
}
]
}
]
}
],
"CurrentPage": 1,
"AvailablePages": [1]
}