.NET API browser

Welcome to the .NET API browser – your one-stop shop for all .NET-based APIs from Microsoft. Start searching for any managed APIs by typing in the box below.

If you have any feedback, create a new issue in the dotnet/dotnet-api-docs repo.

Quick Filters

.NET API Reference version Core 2.0

NameDescription
Microsoft.CSharp.RuntimeBinder NamespaceProvides classes and interfaces that support interoperation between Dynamic Language Runtime and C#.
Microsoft.VisualBasic NamespaceContains types that support the Visual Basic Runtime in Visual Basic.
Microsoft.VisualBasic.CompilerServices NamespaceContains internal-use only types that support the Visual Basic compiler.
Microsoft.Win32.SafeHandles NamespaceContains classes that are abstract derivations of safe handle classes that provide common functionality supporting file and operating system handles.
System NamespaceContains fundamental classes and base classes that define commonly-used value and reference data types, events and event handlers, interfaces, attributes, and processing exceptions.
System.Buffers NamespaceContains types used in creating and managing memory buffers, such as those represented by Span<T> and Memory<T>.
System.CodeDom.Compiler NamespaceContains types for managing the generation and compilation of source code in supported programming languages. Code generators can each produce source code in a particular programming language based on the structure of Code Document Object Model (CodeDOM) source code models consisting of elements provided by the System.CodeDom namespace.
System.Collections NamespaceContains interfaces and classes that define various collections of objects, such as lists, queues, bit arrays, hash tables and dictionaries.
System.Collections.Concurrent NamespaceProvides several thread-safe collection classes that should be used in place of the corresponding types in the System.Collections and System.Collections.Generic namespaces whenever multiple threads are accessing the collection concurrently. However, access to elements of a collection object through extension methods or through explicit interface implementations are not guaranteed to be thread-safe and may need to be synchronized by the caller.
System.Collections.Generic NamespaceContains interfaces and classes that define generic collections, which allow users to create strongly typed collections that provide better type safety and performance than non-generic strongly typed collections.
System.Collections.Immutable NamespaceContains interfaces and classes that define immutable collections.
System.Collections.ObjectModel NamespaceContains classes that can be used as collections in the object model of a reusable library. Use these classes when properties or methods return collections.
System.Collections.Specialized NamespaceContains specialized and strongly-typed collections; for example, a linked list dictionary, a bit vector, and collections that contain only strings.
System.ComponentModel NamespaceProvides classes that are used to implement the run-time and design-time behavior of components and controls. This namespace includes the base classes and interfaces for implementing attributes and type converters, binding to data sources, and licensing components.
System.ComponentModel.DataAnnotations NamespaceProvides attribute classes that are used to define metadata for ASP.NET MVC and ASP.NET data controls.
System.ComponentModel.DataAnnotations.Schema NamespaceProvides support for attribute classes that are used to define metadata for ASP.NET MVC and ASP.NET data controls.
System.ComponentModel.Design NamespaceContains classes that developers can use to build custom design-time behavior for components and user interfaces for configuring components at design time. The design time environment provides systems that enable developers to arrange components and configure their properties. Some components may require specific design-time only behavior to function properly in a design time environment. It may also be valuable to provide custom user interfaces which assist developers in configuring components or the values of complex data types. The classes and interfaces defined within this namespace can be used to build design-time behavior for components, access design-time services, and implement customized design-time configuration interfaces.
System.ComponentModel.Design.Serialization NamespaceProvides types that support customization and control of serialization at design time.
System.Configuration.Assemblies NamespaceContains classes that are used to configure an assembly.
System.Data NamespaceProvides access to classes that represent the ADO.NET architecture. ADO.NET lets you build components that efficiently manage data from multiple data sources.
System.Data.Common NamespaceContains classes shared by .NET data providers.
System.Data.SqlTypes NamespaceProvides classes for native data types in SQL Server. These classes provide a safer, faster alternative to the data types provided by the .NET Framework common language runtime (CLR). Using the classes in this namespace helps prevent type conversion errors caused by loss of precision. Because other data types are converted to and from SqlTypes behind the scenes, explicitly creating and using objects within this namespace also yields faster code.
System.Diagnostics NamespaceProvides classes that allow you to interact with system processes, event logs, and performance counters.
System.Diagnostics.CodeAnalysis NamespaceContains classes for interaction with code analysis tools. These tools are used to analyze code for conformance to coding conventions such as naming or security rules.
System.Diagnostics.Contracts NamespaceContains static classes for representing program contracts such as preconditions, postconditions, and invariants.
System.Diagnostics.SymbolStore NamespaceProvides classes that allow you to read and write debug symbol information, such as source line to Microsoft intermediate language (MSIL) maps. Compilers that target .NET can store the debug symbol information into programmer's database (PDB) files. Debuggers and code profiler tools can read the debug symbol information at run time.
System.Diagnostics.Tracing NamespaceProvides types and members that enable you to create strongly typed events to be captured by event tracing for Windows (ETW).
System.Drawing NamespaceProvides access to GDI+ basic graphics functionality. The System.Drawing.Drawing2D, System.Drawing.Imaging, and System.Drawing.Text namespaces provide more advanced functionality. For limitations, see the Remarks section.
System.Dynamic NamespaceProvides classes and interfaces that support Dynamic Language Runtime.
System.Globalization NamespaceContains classes that define culture-related information, including language, country/region, calendars in use, format patterns for dates, currency, and numbers, and sort order for strings. These classes are useful for writing globalized (internationalized) applications. Classes such as StringInfo and TextInfo provide advanced globalization functionalities, including surrogate support and text element processing.
System.IO NamespaceContains types that allow reading and writing to files and data streams, and types that provide basic file and directory support.
System.IO.Compression NamespaceContains classes that provide basic compression and decompression services for streams.
System.IO.IsolatedStorage NamespaceContains types that allow the creation and use of isolated stores. With these stores, you can read and write data that less trusted code cannot access and prevent the exposure of sensitive information that can be saved elsewhere on the file system. Data is stored in compartments that are isolated by the current user and by the assembly in which the code exists. Additionally, data can be isolated by domain. Roaming profiles can be used in conjunction with isolated storage so isolated stores will travel with the user's profile. The IsolatedStorageScope enumeration indicates different types of isolation. For more information about when to use isolated storage, see Isolated Storage.
System.IO.MemoryMappedFiles NamespaceProvides classes for using a memory-mapped file, which maps the contents of a file to an application's logical address space.
System.IO.Pipes NamespaceContains types that provide a means for interprocess communication through anonymous and/or named pipes.
System.Linq NamespaceProvides classes and interfaces that support queries that use Language-Integrated Query (LINQ).
System.Linq.Expressions NamespaceContains classes, interfaces and enumerations that enable language-level code expressions to be represented as objects in the form of expression trees.
System.Net NamespaceProvides a simple programming interface for many of the protocols used on networks today. Classes in the System.Net namespace can be used to develop Windows Store apps or desktop apps. When used in a Windows Store app, classes in the System.Net namespace are affected by network isolation feature, part of the application security model used by the Windows Developer Preview. The appropriate network capabilities must be enabled in the app manifest for a Windows Store app for the system to allow network access by a Windows Store app. For more information, see the Network Isolation for Windows Store Apps.
System.Net.Cache NamespaceDefines the types and enumerations used to define cache policies for resources obtained using the WebRequest and HttpWebRequest classes.
System.Net.Http NamespaceProvides a programming interface for modern HTTP applications.
System.Net.Http.Headers NamespaceProvides support for collections of HTTP headers used by the System.Net.Http namespace.
System.Net.Mail NamespaceContains classes used to send electronic mail to a Simple Mail Transfer Protocol (SMTP) server for delivery.
System.Net.Mime NamespaceContains types that are used to represent Multipurpose Internet Mail Exchange (MIME) headers. These types are used with the types in the System.Net.Mail namespace to specify Content-Type, Content-Disposition, and Content-transfer-Encoding headers when using the SmtpClient class to send email.
System.Net.NetworkInformation NamespaceProvides access to network traffic data, network address information, and notification of address changes for the local computer. The namespace also contains classes that implement the Ping utility. You can use Ping and related classes to check whether a computer is reachable across the network.
System.Net.Security NamespaceProvides network streams for secure communications between hosts.
System.Net.Sockets NamespaceProvides a managed implementation of the Windows Sockets (Winsock) interface for developers who need to tightly control access to the network.
System.Net.WebSockets NamespaceProvides a managed implementation of the WebSocket interface for developers.
System.Numerics NamespaceContains numeric types that complement the numeric primitives, such as Byte, Double, and Int32, that are defined by .NET.
System.Reflection NamespaceContains types that retrieve information about assemblies, modules, members, parameters, and other entities in managed code by examining their metadata. These types also can be used to manipulate instances of loaded types, for example to hook up events or to invoke methods. To dynamically create types, use the System.Reflection.Emit namespace.
System.Reflection.Emit NamespaceContains classes that allow a compiler or tool to emit metadata and Microsoft intermediate language (MSIL) and optionally generate a PE file on disk. The primary clients of these classes are script engines and compilers.
System.Reflection.Metadata NamespaceProvides low-level functionality for reading assembly metadata according to ECMA-335. This namespace is designed to be used by compilers and other tools that need to read assembly metadata.
System.Reflection.Metadata.Ecma335 NamespaceProvides low-level functionality for writing assembly metadata according to ECMA-335.
System.Reflection.PortableExecutable NamespaceProvides classes related to reading or writing Portable Executable (PE) files.
System.Resources NamespaceProvides classes and interfaces that allow developers to create, store, and manage various culture-specific resources used in an application. One of the most important classes of the System.Resources namespace is the ResourceManager class.
System.Runtime NamespaceContains advanced types that support diverse namespaces such as the System, Runtime, and the Security namespaces.
System.Runtime.CompilerServices NamespaceProvides functionality for compiler writers who use managed code to specify attributes in metadata that affect the run-time behavior of the common language runtime.
System.Runtime.ConstrainedExecution NamespaceDefines a set of types that enumerate and define a contract for reliability between the author of some code, and the developers who take a dependency on that code. The types in the System.Runtime.ConstrainedExecution namespace are intended for use in constrained execution regions (CERs).
System.Runtime.ExceptionServices NamespaceProvides classes for advanced exception handling.
System.Runtime.InteropServices NamespaceProvides a wide variety of members that support COM interop and platform invoke services. If you are unfamiliar with these services, see Interoperating with Unmanaged Code.
System.Runtime.InteropServices.ComTypes NamespaceContains managed types that correspond to types used by COM interop.
System.Runtime.InteropServices.WindowsRuntime NamespaceContains classes that support interoperation between managed code and the Windows Runtime, and that enable the creation of Windows Runtime types with managed code.
System.Runtime.Loader NamespaceProvides interfaces and classes to allow developers the opportunity to influence runtime loading behavior.
System.Runtime.Serialization NamespaceContains classes that can be used for serializing and deserializing objects. Serialization is the process of converting an object or a graph of objects into a linear sequence of bytes for either storage or transmission to another location. Deserialization is the process of taking in stored information and recreating objects from it.
System.Runtime.Serialization.Formatters NamespaceProvides common enumerations, interfaces, and classes that are used by serialization formatters.
System.Runtime.Serialization.Formatters.Binary NamespaceContains the BinaryFormatter class, which can be used to serialize and deserialize objects in binary format.
System.Runtime.Serialization.Json NamespaceProvides classes related to Json serialization.
System.Runtime.Versioning NamespaceContains advanced types that support versioning in side by side implementations of .NET.
System.Security NamespaceProvides the underlying structure of the common language runtime security system, including base classes for permissions.
System.Security.Authentication NamespaceProvides a set of enumerations that describe the security of a connection. These enumerations include CipherAlgorithmType, ExchangeAlgorithmType, HashAlgorithmType, and SslProtocols.
System.Security.Authentication.ExtendedProtection NamespaceProvides support for authentication using extended protection for applications.
System.Security.Claims NamespaceContains classes that implement claims-based identity in .NET, including classes that represent claims, claims-based identities, and claims-based principals.
System.Security.Cryptography NamespaceProvides cryptographic services, including secure encoding and decoding of data, as well as many other operations, such as hashing, random number generation, and message authentication. For more information, see Cryptographic Services.
System.Security.Cryptography.X509Certificates NamespaceContains the common language runtime implementation of the Authenticode X.509 v.3 certificate. This certificate is signed with a private key that uniquely and positively identifies the holder of the certificate.
System.Security.Permissions NamespaceDefines classes that control access to operations and resources based on policy.
System.Security.Principal NamespaceDefines a principal object that represents the security context under which code is running. For more information, see Role-Based Security.
System.Text NamespaceContains classes that represent ASCII and Unicode character encodings; abstract base classes for converting blocks of characters to and from blocks of bytes; and a helper class that manipulates and formats String objects without creating intermediate instances of String.
System.Text.RegularExpressions NamespaceProvides regular expression functionality that may be used from any platform or language that runs within .NET. In addition to the types contained in this namespace, the RegexStringValidator class enables you to determine whether a particular string conforms to a regular expression pattern.
System.Threading NamespaceProvides classes and interfaces that enable multithreaded programming. In addition to classes for synchronizing thread activities and access to data (Mutex, Monitor, Interlocked, AutoResetEvent, and so on), this namespace includes a ThreadPool class that allows you to use a pool of system-supplied threads, and a Timer class that executes callback methods on thread pool threads.
System.Threading.Tasks NamespaceProvides types that simplify the work of writing concurrent and asynchronous code. The main types are Task which represents an asynchronous operation that can be waited on and cancelled, and Task<TResult>, which is a task that can return a value. The TaskFactory class provides static methods for creating and starting tasks, and the TaskScheduler class provides the default thread scheduling infrastructure.
System.Threading.Tasks.Dataflow NamespaceProvides an actor-based programming model that supports in-process message passing for coarse-grained dataflow and pipelining tasks.
System.Timers NamespaceProvides the Timer component, which allows you to raise an event on a specified interval.
System.Transactions NamespaceContains classes that allow you to write your own transactional application and resource manager. Specifically, you can create and participate in a transaction (local or distributed) with one or multiple participants.
System.Web NamespaceFor .NET Core and .NET 5+, this namespace contains the HttpUtility class. For .NET Framework, this namespace contains classes and interfaces that enable browser-server communication. These classes include the HttpRequest class, which provides extensive information about the current HTTP request; the HttpResponse class, which manages HTTP output to the client; and the HttpServerUtility class, which provides access to server-side utilities and processes. System.Web also includes classes for cookie manipulation, file transfer, exception information, and output cache control in .NET Framework.
System.Windows.Input NamespaceMost of the types in this namespace support the Windows Presentation Foundation (WPF) input system. This includes device abstraction classes for mouse, keyboard, and stylus devices, a common input manager class, support for commanding and custom commands, and various utility classes. However, some of the types are applicable beyond WPF.
System.Xml NamespaceProvides standards-based support for processing XML.
System.Xml.Linq NamespaceContains the classes for LINQ to XML. LINQ to XML is an in-memory XML programming interface that enables you to modify XML documents efficiently and easily.
System.Xml.Resolvers NamespaceProvides support for prepopulating the cache with DTDs or XML streams.
System.Xml.Schema NamespaceContains the XML classes that provide standards-based support for XML schema definition language (XSD) schemas.
System.Xml.Serialization NamespaceContains classes that are used to serialize objects into XML format documents or streams.
System.Xml.XPath NamespaceContains the classes that define a cursor model for navigating and editing XML information items as instances of the XQuery 1.0 and XPath 2.0 Data Model.
System.Xml.Xsl NamespaceProvides support for Extensible Stylesheet Transformation (XSLT) transforms. It supports the W3C XSL Transformations (XSLT) Version 1.0 Recommendation.