Marshal Class

Provides a collection of methods for allocating unmanaged memory, copying unmanaged memory blocks, and converting managed to unmanaged types, as well as other miscellaneous methods used when interacting with unmanaged code.

System.Object
  System.Runtime.InteropServices.Marshal

Namespace:  System.Runtime.InteropServices
Assembly:  mscorlib (in mscorlib.dll)

public static class Marshal

The Marshal type exposes the following members.

  NameDescription
Public methodStatic memberAddRefIncrements the reference count on the specified interface.
Public methodStatic memberAllocCoTaskMemAllocates a block of memory of specified size from the COM task memory allocator.
Public methodStatic memberAllocHGlobal(Int32)Allocates memory from the unmanaged memory of the process by using the specified number of bytes.
Public methodStatic memberAllocHGlobal(IntPtr)Allocates memory from the unmanaged memory of the process by using the pointer to the specified number of bytes.
Public methodStatic memberAreComObjectsAvailableForCleanupIndicates whether runtime callable wrappers (RCWs) from any context are available for cleanup.
Public methodStatic memberBindToMonikerGets an interface pointer identified by the specified moniker.
Public methodStatic memberChangeWrapperHandleStrengthChanges the strength of an object's COM Callable Wrapper (CCW) handle.
Public methodStatic memberCleanupUnusedObjectsInCurrentContextNotifies the runtime to clean up all Runtime Callable Wrappers (RCWs) allocated in the current context.
Public methodStatic memberSupported by the XNA FrameworkCopy(Byte[], Int32, IntPtr, Int32)Copies data from a one-dimensional, managed 8-bit unsigned integer array to an unmanaged memory pointer.
Public methodStatic memberSupported by the XNA FrameworkCopy(Char[], Int32, IntPtr, Int32)Copies data from a one-dimensional, managed character array to an unmanaged memory pointer.
Public methodStatic memberSupported by the XNA FrameworkCopy(Double[], Int32, IntPtr, Int32)Copies data from a one-dimensional, managed double-precision floating-point number array to an unmanaged memory pointer.
Public methodStatic memberSupported by the XNA FrameworkCopy(Int16[], Int32, IntPtr, Int32)Copies data from a one-dimensional, managed 16-bit signed integer array to an unmanaged memory pointer.
Public methodStatic memberSupported by the XNA FrameworkCopy(Int32[], Int32, IntPtr, Int32)Copies data from a one-dimensional, managed 32-bit signed integer array to an unmanaged memory pointer.
Public methodStatic memberSupported by the XNA FrameworkCopy(Int64[], Int32, IntPtr, Int32)Copies data from a one-dimensional, managed 64-bit signed integer array to an unmanaged memory pointer.
Public methodStatic memberSupported by the XNA FrameworkCopy(IntPtr, Byte[], Int32, Int32)Copies data from an unmanaged memory pointer to a managed 8-bit unsigned integer array.
Public methodStatic memberSupported by the XNA FrameworkCopy(IntPtr, Char[], Int32, Int32)Copies data from an unmanaged memory pointer to a managed character array.
Public methodStatic memberSupported by the XNA FrameworkCopy(IntPtr, Double[], Int32, Int32)Copies data from an unmanaged memory pointer to a managed double-precision floating-point number array.
Public methodStatic memberSupported by the XNA FrameworkCopy(IntPtr, Int16[], Int32, Int32)Copies data from an unmanaged memory pointer to a managed 16-bit signed integer array.
Public methodStatic memberSupported by the XNA FrameworkCopy(IntPtr, Int32[], Int32, Int32)Copies data from an unmanaged memory pointer to a managed 32-bit signed integer array.
Public methodStatic memberSupported by the XNA FrameworkCopy(IntPtr, Int64[], Int32, Int32)Copies data from an unmanaged memory pointer to a managed 64-bit signed integer array.
Public methodStatic memberCopy(IntPtr, IntPtr[], Int32, Int32)Copies data from an unmanaged memory pointer to a managed IntPtr array.
Public methodStatic memberSupported by the XNA FrameworkCopy(IntPtr, Single[], Int32, Int32)Copies data from an unmanaged memory pointer to a managed single-precision floating-point number array.
Public methodStatic memberCopy(IntPtr[], Int32, IntPtr, Int32)Copies data from a one-dimensional, managed IntPtr array to an unmanaged memory pointer.
Public methodStatic memberSupported by the XNA FrameworkCopy(Single[], Int32, IntPtr, Int32)Copies data from a one-dimensional, managed single-precision floating-point number array to an unmanaged memory pointer.
Public methodStatic memberCreateAggregatedObjectAggregates a managed object with the specified COM object.
Public methodStatic memberCreateWrapperOfTypeWraps the specified COM object in an object of the specified type.
Public methodStatic memberSupported by the XNA FrameworkDestroyStructureFrees all substructures that the specified unmanaged memory block points to.
Public methodStatic memberFinalReleaseComObjectReleases all references to a Runtime Callable Wrapper (RCW) by setting its reference count to 0.
Public methodStatic memberFreeBSTRFrees a BSTR using the COM SysFreeString function.
Public methodStatic memberFreeCoTaskMemFrees a block of memory allocated by the unmanaged COM task memory allocator.
Public methodStatic memberFreeHGlobalFrees memory previously allocated from the unmanaged memory of the process.
Public methodStatic memberGenerateGuidForTypeReturns the globally unique identifier (GUID) for the specified type, or generates a GUID using the algorithm used by the Type Library Exporter (Tlbexp.exe).
Public methodStatic memberGenerateProgIdForTypeReturns a programmatic identifier (ProgID) for the specified type.
Public methodStatic memberGetActiveObjectObtains a running instance of the specified object from the running object table (ROT).
Public methodStatic memberGetComInterfaceForObject(Object, Type)Returns a pointer to an IUnknown interface that represents the specified interface on the specified object. Custom query interface access is enabled by default.
Public methodStatic memberGetComInterfaceForObject(Object, Type, CustomQueryInterfaceMode)Returns a pointer to an IUnknown interface that represents the specified interface on the specified object. Custom query interface access is controlled by the specified customization mode.
Public methodStatic memberGetComInterfaceForObjectInContextReturns an interface pointer that represents the specified interface for an object, if the caller is in the same context as that object.
Public methodStatic memberGetComObjectDataRetrieves data that is referenced by the specified key from the specified COM object.
Public methodStatic memberGetComSlotForMethodInfoRetrieves the virtual function table (v-table or VTBL) slot for a specified System.Reflection.MemberInfo type when that type is exposed to COM.
Public methodStatic memberGetDelegateForFunctionPointerConverts an unmanaged function pointer to a delegate.
Public methodStatic memberGetEndComSlotRetrieves the last slot in the virtual function table (v-table or VTBL) of a type when exposed to COM.
Public methodStatic memberGetExceptionCodeRetrieves a code that identifies the type of the exception that occurred.
Public methodStatic memberGetExceptionForHR(Int32)Converts the specified HRESULT error code to a corresponding Exception object.
Public methodStatic memberGetExceptionForHR(Int32, IntPtr)Converts the specified HRESULT error code to a corresponding Exception object, with additional error information passed in an IErrorInfo interface for the exception object.
Public methodStatic memberGetExceptionPointersRetrieves a computer-independent description of an exception, and information about the state that existed for the thread when the exception occurred.
Public methodStatic memberGetFunctionPointerForDelegateConverts a delegate into a function pointer that is callable from unmanaged code.
Public methodStatic memberGetHINSTANCEReturns the instance handle (HINSTANCE) for the specified module.
Public methodStatic memberGetHRForExceptionConverts the specified exception to an HRESULT.
Public methodStatic memberGetHRForLastWin32ErrorReturns the HRESULT corresponding to the last error incurred by Win32 code executed using Marshal.
Public methodStatic memberGetIDispatchForObjectReturns an IDispatch interface from a managed object.
Public methodStatic memberGetIDispatchForObjectInContextReturns an IDispatch interface pointer from a managed object, if the caller is in the same context as that object.
Public methodStatic memberGetITypeInfoForTypeReturns a System.Runtime.InteropServices.ComTypes.ITypeInfo interface from a managed type.
Public methodStatic memberGetIUnknownForObjectReturns an IUnknown interface from a managed object.
Public methodStatic memberGetIUnknownForObjectInContextReturns an IUnknown interface from a managed object, if the caller is in the same context as that object.
Public methodStatic memberSupported by the XNA FrameworkGetLastWin32ErrorReturns the error code returned by the last unmanaged function that was called using platform invoke that has the DllImportAttribute.SetLastError flag set.
Public methodStatic memberGetManagedThunkForUnmanagedMethodPtr Obsolete. Gets a pointer to a runtime-generated function that marshals a call from managed to unmanaged code.
Public methodStatic memberGetMethodInfoForComSlotRetrieves a MemberInfo object for the specified virtual function table (v-table or VTBL) slot.
Public methodStatic memberGetNativeVariantForObjectConverts an object to a COM VARIANT.
Public methodStatic memberGetObjectForIUnknownReturns an instance of a type that represents a COM object by a pointer to its IUnknown interface.
Public methodStatic memberGetObjectForNativeVariantConverts a COM VARIANT to an object.
Public methodStatic memberGetObjectsForNativeVariantsConverts an array of COM VARIANTs to an array of objects.
Public methodStatic memberGetStartComSlotGets the first slot in the virtual function table (v-table or VTBL) that contains user-defined methods.
Public methodStatic memberGetThreadFromFiberCookie Obsolete. Converts a fiber cookie into the corresponding System.Threading.Thread instance.
Public methodStatic memberGetTypedObjectForIUnknownReturns a managed object of a specified type that represents a COM object.
Public methodStatic memberGetTypeForITypeInfoConverts an unmanaged ITypeInfo object into a managed System.Type object.
Public methodStatic memberGetTypeInfoName(ITypeInfo)Retrieves the name of the type represented by an ITypeInfo object.
Public methodStatic memberGetTypeInfoName(UCOMITypeInfo) Obsolete. Retrieves the name of the type represented by an ITypeInfo object.
Public methodStatic memberGetTypeLibGuid(ITypeLib)Retrieves the library identifier (LIBID) of a type library.
Public methodStatic memberGetTypeLibGuid(UCOMITypeLib) Obsolete. Retrieves the library identifier (LIBID) of a type library.
Public methodStatic memberGetTypeLibGuidForAssemblyRetrieves the library identifier (LIBID) that is assigned to a type library when it was exported from the specified assembly.
Public methodStatic memberGetTypeLibLcid(ITypeLib)Retrieves the LCID of a type library.
Public methodStatic memberGetTypeLibLcid(UCOMITypeLib) Obsolete. Retrieves the LCID of a type library.
Public methodStatic memberGetTypeLibName(ITypeLib)Retrieves the name of a type library.
Public methodStatic memberGetTypeLibName(UCOMITypeLib) Obsolete. Retrieves the name of a type library.
Public methodStatic memberGetTypeLibVersionForAssemblyRetrieves the version number of a type library that will be exported from the specified assembly.
Public methodStatic memberGetUniqueObjectForIUnknownCreates a unique Runtime Callable Wrapper (RCW) object for a given IUnknown interface.
Public methodStatic memberGetUnmanagedThunkForManagedMethodPtr Obsolete. Gets a pointer to a runtime-generated function that marshals a call from unmanaged to managed code.
Public methodStatic memberIsComObjectIndicates whether a specified object represents a COM object.
Public methodStatic memberIsTypeVisibleFromComIndicates whether a type is visible to COM clients.
Public methodStatic memberNumParamBytesCalculates the number of bytes in unmanaged memory that are required to hold the parameters for the specified method.
Public methodStatic memberOffsetOfReturns the field offset of the unmanaged form of the managed class.
Public methodStatic memberSupported by the XNA FrameworkPrelinkExecutes one-time method setup tasks without calling the method.
Public methodStatic memberSupported by the XNA FrameworkPrelinkAllPerforms a pre-link check for all methods on a class.
Public methodStatic memberPtrToStringAnsi(IntPtr)Copies all characters up to the first null character from an unmanaged ANSI string to a managed String, and widens each ANSI character to Unicode.
Public methodStatic memberPtrToStringAnsi(IntPtr, Int32)Allocates a managed String, copies a specified number of characters from an unmanaged ANSI string into it, and widens each ANSI character to Unicode.
Public methodStatic memberPtrToStringAuto(IntPtr)Allocates a managed String and copies all characters up to the first null character from a string stored in unmanaged memory into it.
Public methodStatic memberPtrToStringAuto(IntPtr, Int32)Allocates a managed String and copies the specified number of characters from a string stored in unmanaged memory into it.
Public methodStatic memberPtrToStringBSTRAllocates a managed String and copies a BSTR Data Type string stored in unmanaged memory into it.
Public methodStatic memberSupported by the XNA FrameworkPtrToStringUni(IntPtr)Allocates a managed String and copies all characters up to the first null character from an unmanaged Unicode string into it.
Public methodStatic memberSupported by the XNA FrameworkPtrToStringUni(IntPtr, Int32)Allocates a managed String and copies a specified number of characters from an unmanaged Unicode string into it.
Public methodStatic memberSupported by the XNA FrameworkPtrToStructure(IntPtr, Object)Marshals data from an unmanaged block of memory to a managed object.
Public methodStatic memberSupported by the XNA FrameworkPtrToStructure(IntPtr, Type)Marshals data from an unmanaged block of memory to a newly allocated managed object of the specified type.
Public methodStatic memberQueryInterfaceRequests a pointer to a specified interface from a COM object.
Public methodStatic memberSupported by the XNA FrameworkReadByte(IntPtr)Reads a single byte from unmanaged memory.
Public methodStatic memberSupported by the XNA FrameworkReadByte(IntPtr, Int32)Reads a single byte at a given offset (or index) from unmanaged memory.
Public methodStatic memberReadByte(Object, Int32)Reads a single byte at a given offset (or index) from unmanaged memory.
Public methodStatic memberSupported by the XNA FrameworkReadInt16(IntPtr)Reads a 16-bit signed integer from unmanaged memory.
Public methodStatic memberSupported by the XNA FrameworkReadInt16(IntPtr, Int32)Reads a 16-bit signed integer at a given offset from unmanaged memory.
Public methodStatic memberReadInt16(Object, Int32)Reads a 16-bit signed integer at a given offset from unmanaged memory.
Public methodStatic memberSupported by the XNA FrameworkReadInt32(IntPtr)Reads a 32-bit signed integer from unmanaged memory.
Public methodStatic memberSupported by the XNA FrameworkReadInt32(IntPtr, Int32)Reads a 32-bit signed integer at a given offset from unmanaged memory.
Public methodStatic memberReadInt32(Object, Int32)Reads a 32-bit signed integer at a given offset from unmanaged memory.
Public methodStatic memberSupported by the XNA FrameworkReadInt64(IntPtr)Reads a 64-bit signed integer from unmanaged memory.
Public methodStatic memberSupported by the XNA FrameworkReadInt64(IntPtr, Int32)Reads a 64-bit signed integer at a given offset from unmanaged memory.
Public methodStatic memberReadInt64(Object, Int32)Reads a 64-bit signed integer at a given offset from unmanaged memory.
Public methodStatic memberSupported by the XNA FrameworkReadIntPtr(IntPtr)Reads a processor native-sized integer from unmanaged memory.
Public methodStatic memberReadIntPtr(IntPtr, Int32)Reads a processor native sized integer at a given offset from unmanaged memory.
Public methodStatic memberReadIntPtr(Object, Int32)Reads a processor native sized integer from unmanaged memory.
Public methodStatic memberReAllocCoTaskMemResizes a block of memory previously allocated with AllocCoTaskMem.
Public methodStatic memberReAllocHGlobalResizes a block of memory previously allocated with AllocHGlobal.
Public methodStatic memberReleaseDecrements the reference count on the specified interface.
Public methodStatic memberReleaseComObjectDecrements the reference count of the specified Runtime Callable Wrapper (RCW) associated with the specified COM object.
Public methodStatic memberReleaseThreadCache Obsolete. Releases the thread cache.
Public methodStatic memberSecureStringToBSTRAllocates a BSTR Data Type and copies the contents of a managed SecureString object into it.
Public methodStatic memberSecureStringToCoTaskMemAnsiCopies the contents of a managed SecureString object to a block of memory allocated from the unmanaged COM task allocator.
Public methodStatic memberSecureStringToCoTaskMemUnicodeCopies the contents of a managed SecureString object to a block of memory allocated from the unmanaged COM task allocator.
Public methodStatic memberSecureStringToGlobalAllocAnsiCopies the contents of a managed SecureString into unmanaged memory, converting into ANSI format as it copies.
Public methodStatic memberSecureStringToGlobalAllocUnicodeCopies the contents of a managed SecureString object into unmanaged memory.
Public methodStatic memberSetComObjectDataSets data referenced by the specified key in the specified COM object.
Public methodStatic memberSupported by the XNA FrameworkSizeOf(Object)Returns the unmanaged size of an object in bytes.
Public methodStatic memberSupported by the XNA FrameworkSizeOf(Type)Returns the size of an unmanaged type in bytes.
Public methodStatic memberStringToBSTRAllocates a BSTR Data Type and copies the contents of a managed String into it.
Public methodStatic memberStringToCoTaskMemAnsiCopies the contents of a managed String to a block of memory allocated from the unmanaged COM task allocator.
Public methodStatic memberStringToCoTaskMemAutoCopies the contents of a managed String to a block of memory allocated from the unmanaged COM task allocator.
Public methodStatic memberStringToCoTaskMemUniCopies the contents of a managed String to a block of memory allocated from the unmanaged COM task allocator.
Public methodStatic memberStringToHGlobalAnsiCopies the contents of a managed String into unmanaged memory, converting into ANSI format as it copies.
Public methodStatic memberStringToHGlobalAutoCopies the contents of a managed String into unmanaged memory, converting into ANSI format if required.
Public methodStatic memberStringToHGlobalUniCopies the contents of a managed String into unmanaged memory.
Public methodStatic memberSupported by the XNA FrameworkStructureToPtrMarshals data from a managed object to an unmanaged block of memory.
Public methodStatic memberThrowExceptionForHR(Int32)Throws an exception with a specific failure HRESULT value.
Public methodStatic memberThrowExceptionForHR(Int32, IntPtr)Throws an exception with a specific failure HRESULT, based on the specified IErrorInfo Interface interface.
Public methodStatic memberUnsafeAddrOfPinnedArrayElementGets the address of the element at the specified index inside the specified array.
Public methodStatic memberSupported by the XNA FrameworkWriteByte(IntPtr, Byte)Writes a single byte value to unmanaged memory.
Public methodStatic memberSupported by the XNA FrameworkWriteByte(IntPtr, Int32, Byte)Writes a single byte value to unmanaged memory at a specified offset.
Public methodStatic memberWriteByte(Object, Int32, Byte)Writes a single byte value to unmanaged memory at a specified offset.
Public methodStatic memberWriteInt16(IntPtr, Char)Writes a character as a 16-bit integer value to unmanaged memory.
Public methodStatic memberSupported by the XNA FrameworkWriteInt16(IntPtr, Int16)Writes a 16-bit integer value to unmanaged memory.
Public methodStatic memberWriteInt16(IntPtr, Int32, Char)Writes a 16-bit signed integer value to unmanaged memory at a specified offset.
Public methodStatic memberSupported by the XNA FrameworkWriteInt16(IntPtr, Int32, Int16)Writes a 16-bit signed integer value into unmanaged memory at a specified offset.
Public methodStatic memberWriteInt16(Object, Int32, Char)Writes a 16-bit signed integer value to unmanaged memory at a specified offset.
Public methodStatic memberWriteInt16(Object, Int32, Int16)Writes a 16-bit signed integer value to unmanaged memory at a specified offset.
Public methodStatic memberSupported by the XNA FrameworkWriteInt32(IntPtr, Int32)Writes a 32-bit signed integer value to unmanaged memory.
Public methodStatic memberSupported by the XNA FrameworkWriteInt32(IntPtr, Int32, Int32)Writes a 32-bit signed integer value into unmanaged memory at a specified offset.
Public methodStatic memberWriteInt32(Object, Int32, Int32)Writes a 32-bit signed integer value to unmanaged memory at a specified offset.
Public methodStatic memberSupported by the XNA FrameworkWriteInt64(IntPtr, Int64)Writes a 64-bit signed integer value to unmanaged memory.
Public methodStatic memberSupported by the XNA FrameworkWriteInt64(IntPtr, Int32, Int64)Writes a 64-bit signed integer value to unmanaged memory at a specified offset.
Public methodStatic memberWriteInt64(Object, Int32, Int64)Writes a 64-bit signed integer value to unmanaged memory at a specified offset.
Public methodStatic memberSupported by the XNA FrameworkWriteIntPtr(IntPtr, IntPtr)Writes a processor native sized integer value into unmanaged memory.
Public methodStatic memberWriteIntPtr(IntPtr, Int32, IntPtr)Writes a processor native-sized integer value to unmanaged memory at a specified offset.
Public methodStatic memberWriteIntPtr(Object, Int32, IntPtr)Writes a processor native sized integer value to unmanaged memory.
Public methodStatic memberZeroFreeBSTRFrees a BSTR Data Type pointer that was allocated using the SecureStringToBSTR method.
Public methodStatic memberZeroFreeCoTaskMemAnsiFrees an unmanaged string pointer that was allocated using the SecureStringToCoTaskMemAnsi method.
Public methodStatic memberZeroFreeCoTaskMemUnicodeFrees an unmanaged string pointer that was allocated using the SecureStringToCoTaskMemUnicode method.
Public methodStatic memberZeroFreeGlobalAllocAnsiFrees an unmanaged string pointer that was allocated using the SecureStringToGlobalAllocAnsi method.
Public methodStatic memberZeroFreeGlobalAllocUnicodeFrees an unmanaged string pointer that was allocated using the SecureStringToGlobalAllocUnicode method.
Top

  NameDescription
Public fieldStatic memberSupported by the XNA FrameworkSystemDefaultCharSizeRepresents the default character size on the system; the default is 2 for Unicode systems and 1 for ANSI systems. This field is read-only.
Public fieldStatic memberSystemMaxDBCSCharSizeRepresents the maximum size of a double byte character set (DBCS) size, in bytes, for the current operating system. This field is read-only.
Top

The static methods defined on the Marshal class are essential to working with unmanaged code. Most methods defined in this class are typically used by developers who want to provide a bridge between the managed and unmanaged programming models. For example, the StringToHGlobalAnsi method copies ANSI characters from a specified string (in the managed heap) to a buffer in the unmanaged heap. It also allocates the target heap of the right size.

The common language runtime provides specific marshaling capabilities. For details on marshaling behavior, see Interop Marshaling.

The Read and Write methods in the Marshal class support both aligned and unaligned access.

The following example shows how to use various methods defined by the Marshal class.


using System;
using System.Text;
using System.Runtime.InteropServices;

public struct Point
{
    public Int32 x, y;
}


public sealed class App
{
    static void Main()
    {
        // Demonstrate the use of public static fields of the Marshal class.
        Console.WriteLine("SystemDefaultCharSize={0}, SystemMaxDBCSCharSize={1}",
            Marshal.SystemDefaultCharSize, Marshal.SystemMaxDBCSCharSize);

        // Demonstrate the use of the SizeOf method of the Marshal class.
        Console.WriteLine("Number of bytes needed by a Point object: {0}", 
            Marshal.SizeOf(typeof(Point)));
        Point p = new Point();
        Console.WriteLine("Number of bytes needed by a Point object: {0}",
            Marshal.SizeOf(p));

        // Demonstrate how to call GlobalAlloc and 
        // GlobalFree using the Marshal class.
        IntPtr hglobal = Marshal.AllocHGlobal(100);
        Marshal.FreeHGlobal(hglobal);

        // Demonstrate how to use the Marshal class to get the Win32 error 
        // code when a Win32 method fails.
        Boolean f = CloseHandle(new IntPtr(-1));
        if (!f)
        {
            Console.WriteLine("CloseHandle call failed with an error code of: {0}", 
                Marshal.GetLastWin32Error());
        }  
    }

    // This is a platform invoke prototype. SetLastError is true, which allows 
    // the GetLastWin32Error method of the Marshal class to work correctly.    
    [DllImport("Kernel32", ExactSpelling = true, SetLastError = true)]
    static extern Boolean CloseHandle(IntPtr h);

}

// This code produces the following output.
// 
// SystemDefaultCharSize=2, SystemMaxDBCSCharSize=1
// Number of bytes needed by a Point object: 8
// Number of bytes needed by a Point object: 8
// CloseHandle call failed with an error code of: 6


.NET Framework

Supported in: 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.
Was this page helpful?
(1500 characters remaining)
Thank you for your feedback

Community Additions

ADD
Show:
© 2014 Microsoft