System.Runtime.InteropServi ...
Class Library Reference


.NET Framework 类库
System.Runtime.InteropServices 命名空间

System.Runtime.InteropServices 命名空间提供各种各样支持 COM interop 及平台调用服务的成员。如果您对这些服务不熟悉,请参见 与非托管代码交互操作

此命名空间提供了多种类别的功能,如下表所示。属性可控制封送行为,例如如何安排结构或表示字符串。其中最重要的属性有 DllImportAttribute(可以用来定义用于访问非托管 API 的平台调用方法)和 MarshalAsAttribute(可以用来指定如何在托管内存与非托管内存之间封送数据)。


 说明
公共类AutomationProxyAttribute指定是否应该使用自动化封送拆收器或自定义代理及存根 (Stub) 对该类型进行封送处理。
公共类BestFitMappingAttribute控制是否将 Unicode 字符转换为最接近的匹配 ANSI 字符。
公共类BStrWrapperVT_BSTR 类型的数据从托管代码封送到非托管代码。无法继承此类。
公共类ClassInterfaceAttribute为公开给 COM 的类指定要生成的类接口的类型(如果有接口生成)。
公共类CoClassAttribute指定从类型库中导入的 coclass 的类标识符。
公共类ComAliasNameAttribute指示参数或字段类型的 COM 别名。
公共类ComCompatibleVersionAttribute向 COM 客户端指示程序集当前版本中的所有类与该程序集早期版本中的类兼容。
公共类ComConversionLossAttribute指示从类型库向程序集导入类或接口时丢失了有关信息。
公共类ComDefaultInterfaceAttribute指定要向 COM 公开的默认接口。无法继承此类。
公共类ComEventInterfaceAttribute标识源接口和实现事件接口(从 COM 类型库导入 coclass 时生成)的方法的类。
公共类COMException当从 COM 方法调用返回无法识别的 HRESULT 时引发的异常。
公共类ComImportAttribute指示该属性化类型是以前在 COM 中定义的。
公共类ComRegisterFunctionAttribute指定当注册用于 COM 的程序集时调用的方法;这可以用于注册过程中用户编写代码的执行。
公共类ComSourceInterfacesAttribute为属性化类标识公开为 COM 事件源的一组接口。
公共类ComUnregisterFunctionAttribute指定当注销用于 COM 的程序集时调用的方法;这可以用于注销过程中用户编写代码的执行。
公共类ComVisibleAttribute控制程序集中个别托管类型、成员或所有类型对 COM 的可访问性。
公共类CriticalHandle表示句柄资源的包装类。
公共类CurrencyWrapper对封送拆收器应该将其作为 VT_CY 封送的对象进行包装。
公共类DefaultCharSetAttribute指定 CharSet 枚举的值。无法继承此类。
公共类DefaultParameterValueAttribute当从支持默认参数的语言执行调用时,设置参数的默认值。无法继承此类。
公共类DispatchWrapper对封送拆收器应该将其作为 VT_DISPATCH 封送的对象进行包装。
公共类DispIdAttribute指定方法、字段或属性的 COM 调度标识符 (DISPID)。
公共类DllImportAttribute指示该属性化方法由非托管动态链接库 (DLL) 作为静态入口点公开。
公共类ErrorWrapper对封送拆收器应该将其作为 VT_ERROR 封送的对象进行包装。
公共类ExtensibleClassFactory在创建过程中启用从非托管对象扩展的托管对象的自定义。
公共类ExternalException所有 COM Interop 异常和结构化异常处理 (SEH) 异常的异常基类型。
公共类FieldOffsetAttribute指示字段在类或结构的非托管表示形式内的物理位置。
公共类GuidAttribute当不需要自动 GUID 时提供显式的 System.Guid
公共类HandleCollector跟踪未处理的句柄,并在达到指定阈值时强制执行垃圾回收。
公共类IDispatchImplAttribute指示当向 COM 公开双重接口和调度接口时公共语言运行库使用何种 IDispatch 实现。
公共类ImportedFromTypeLibAttribute指示在程序集内定义的类型原来在类型库中定义。
公共类InAttribute指示应将数据从调用方封送到被调用方,而不返回到调用方。
公共类InterfaceTypeAttribute指示向 COM 公开时,托管接口是双重的、仅支持调度的、还是仅支持 IUnknown 的。
公共类InvalidComObjectException当使用无效的 COM 对象时引发的异常。
公共类InvalidOleVariantTypeException封送拆收器在遇到不能封送到托管代码的 Variant 类型的参数时引发的异常。
公共类LCIDConversionAttribute指示方法的非托管签名需要区域设置标识符 (LCID) 参数。
公共类Marshal提供了一个方法集,这些方法用于分配非托管内存、复制非托管内存块、将托管类型转换为非托管类型,此外还提供了在与非托管代码交互时使用的其他杂项方法。
公共类MarshalAsAttribute指示如何在托管代码和非托管代码之间封送数据。
公共类MarshalDirectiveException当封送拆收器遇到它不支持的 MarshalAsAttribute 时引发的异常。
公共类OptionalAttribute指示参数是可选的。
公共类OutAttribute指示应将数据从被调用方封送回调用方。
公共类PreserveSigAttribute指示应取消在 COM interop 调用期间发生的 HRESULT 或 retval 签名转换。
公共类PrimaryInteropAssemblyAttribute指示该属性化的程序集是主 Interop 程序集。
公共类ProgIdAttribute允许用户指定类的 ProgID。
公共类RegistrationServices提供一组用于注册和注销托管程序集以供从 COM 使用的服务。
公共类RuntimeEnvironment提供一个返回有关公共语言运行库环境的信息的 static 方法的集合。
公共类SafeArrayRankMismatchException当传入的 SAFEARRAY 的秩与托管签名中指定的秩不匹配时引发的异常。
公共类SafeArrayTypeMismatchException当传入的 SAFEARRAY 的类型与托管签名中指定的类型不匹配时引发的异常。
公共类SafeHandle表示操作系统句柄的包装类。
公共类SEHException表示结构化异常处理程序 (SEH) 错误。
公共类SetWin32ContextInIDispatchAttribute此属性已被否决。
公共类StandardOleMarshalObject用标准 OLE STA 封送拆收器替换标准公共语言运行库 (CLR) 自由线程封送拆收器。
公共类StructLayoutAttributeStructLayoutAttribute 类使用户可以控制类或结构的数据字段的物理布局。
公共类TypeLibConverter提供一组服务,将托管程序集转换为 COM 类型库或进行反向转换。
公共类TypeLibFuncAttribute包含最初从 COM 类型库为此方法导入的 FUNCFLAGS
公共类TypeLibImportClassAttribute指定哪个 Type 独占使用接口。无法继承此类。
公共类TypeLibTypeAttribute包含最初为此类型从 COM 类型库导入的 TYPEFLAGS
公共类TypeLibVarAttribute包含最初为此字段从 COM 类型库导入的 VARFLAGS
公共类TypeLibVersionAttribute指定导出类型库的版本号。
公共类UnknownWrapper对封送拆收器应该将其作为 VT_UNKNOWN 封送的对象进行包装。
公共类UnmanagedFunctionPointerAttribute控制作为非托管函数指针传入或传出非托管代码的委托签名的封送行为。无法继承此类。
公共类VariantWrapperVT_VARIANT | VT_BYREF 类型的数据从托管代码封送到非托管代码。无法继承此类。
接口

 接口说明
公共接口_Activator向非托管代码公开 System.Activator 类。
公共接口_Assembly向非托管代码公开 System.Reflection.Assembly 类的公共成员。
公共接口_AssemblyBuilder向非托管代码公开 System.Reflection.Emit.AssemblyBuilder 类。
公共接口_AssemblyName向非托管代码公开 AssemblyName 类。
公共接口_Attribute向非托管代码公开 System.Attribute 类。
公共接口_ConstructorBuilder向非托管代码公开 System.Reflection.Emit.ConstructorBuilder 类。
公共接口_ConstructorInfo向非托管代码公开 System.Reflection.ConstructorInfo 类的公共成员。
公共接口_CustomAttributeBuilder向非托管代码公开 System.Reflection.Emit.CustomAttributeBuilder 类。
公共接口_EnumBuilder向非托管代码公开 System.Reflection.Emit.EnumBuilder 类。
公共接口_EventBuilder向非托管代码公开 System.Reflection.Emit.EventBuilder 类。
公共接口_EventInfo向非托管代码公开 System.Reflection.EventInfo 类的公共成员。
公共接口_Exception向非托管代码公开 System.Exception 类的公共成员。
公共接口_FieldBuilder向非托管代码公开 System.Reflection.Emit.FieldBuilder 类。
公共接口_FieldInfo向非托管代码公开 System.Reflection.FieldInfo 类的公共成员。
公共接口_ILGenerator向非托管代码公开 System.Reflection.Emit.ILGenerator 类。
公共接口_LocalBuilder向非托管代码公开 System.Reflection.Emit.LocalBuilder 类。
公共接口_MemberInfo向非托管代码公开 System.Reflection.MemberInfo 类的公共成员。
公共接口_MethodBase向非托管代码公开 System.Reflection.MethodBase 类的公共成员。
公共接口_MethodBuilder向非托管代码公开 MethodBuilder 类。
公共接口_MethodInfo向非托管代码公开 System.Reflection.MethodInfo 类的公共成员。
公共接口_MethodRental向非托管代码公开 System.Reflection.Emit.MethodRental 类。
公共接口_Module向非托管代码公开 Module 类。
公共接口_ModuleBuilder向非托管代码公开 System.Reflection.Emit.ModuleBuilder 类。
公共接口_ParameterBuilder向非托管代码公开 System.Reflection.Emit.ParameterBuilder 类。
公共接口_ParameterInfo向非托管代码公开 System.Reflection.ParameterInfo 类。
公共接口_PropertyBuilder向非托管代码公开 System.Reflection.Emit.PropertyBuilder 类。
公共接口_PropertyInfo向非托管代码公开 System.Reflection.PropertyInfo 类的公共成员。
公共接口_SignatureHelper向非托管代码公开 System.Reflection.Emit.SignatureHelper 类。
公共接口_Thread向非托管代码公开 System.Threading.Thread 类。
公共接口_Type向非托管代码公开 System.Type 类的公共成员。
公共接口_TypeBuilder向非托管代码公开 System.Reflection.Emit.TypeBuilder 类。
公共接口ICustomAdapter为客户端访问实际对象(而不是自定义封送拆收器分发的适配器对象)提供了一种方式。
公共接口ICustomFactory使用户能够为扩展 MarshalByRefObject 的托管对象编写激活代码。
公共接口ICustomMarshaler旨在提供用于处理方法调用的自定义包装。
公共接口IRegistrationServices提供一组用于注册和注销托管程序集以供从 COM 使用的服务。
公共接口ITypeLibConverter提供一组服务,将托管程序集转换为 COM 类型库或进行反向转换。
公共接口ITypeLibExporterNameProvider当导出到类型库时提供名称大小写控制。
公共接口ITypeLibExporterNotifySink提供回调机制,以供程序集转换器向调用方通知转换的状态,并在转换过程本身之中涉及调用方。
公共接口ITypeLibImporterNotifySink提供回调机制,以供类型库转换器向调用方通知转换的状态,并在转换过程本身之中涉及调用方。
公共接口UCOMIBindCtx应改用 BIND_OPTS
公共接口UCOMIConnectionPoint应改用 IConnectionPoint
公共接口UCOMIConnectionPointContainer应改用 IConnectionPointContainer
公共接口UCOMIEnumConnectionPoints应改用 IEnumConnectionPoints
公共接口UCOMIEnumConnections应改用 IEnumConnections
公共接口UCOMIEnumMoniker应改用 IEnumMoniker
公共接口UCOMIEnumString应改用 IEnumString
公共接口UCOMIEnumVARIANT应改用 IEnumVARIANT
公共接口UCOMIMoniker应改用 IMoniker
公共接口UCOMIPersistFile注意:此接口现在已过时。应改用 IPersistFile
公共接口UCOMIRunningObjectTable应改用 IRunningObjectTable
公共接口UCOMIStream应改用 IStream
公共接口UCOMITypeComp应改用 ITypeComp
公共接口UCOMITypeInfo应改用 ITypeInfo
公共接口UCOMITypeLib应改用 ITypeLib
结构

 结构说明
公共结构ArrayWithOffset在指定的数组中封装数组和偏移量。
公共结构BIND_OPTS应改用 BIND_OPTS
公共结构BINDPTR应改用 BINDPTR
公共结构CONNECTDATA应改用 CONNECTDATA
公共结构DISPPARAMS应改用 DISPPARAMS
公共结构ELEMDESC应改用 ELEMDESC
公共结构ELEMDESC.DESCUNION应改用 ELEMDESC.DESCUNION
公共结构EXCEPINFO应改用 EXCEPINFO
公共结构FILETIME应改用 FILETIME
公共结构FUNCDESC应改用 FUNCDESC
公共结构GCHandle提供从非托管内存访问托管对象的方法。
公共结构HandleRef包装一个托管对象,该对象保存使用平台 invoke(调用)传递给非托管代码的资源句柄。
公共结构IDLDESC应改用 IDLDESC
公共结构PARAMDESC应改用 PARAMDESC
公共结构STATSTG应改用 STATSTG
公共结构TYPEATTR应改用 TYPEATTR
公共结构TYPEDESC应改用 TYPEDESC
公共结构TYPELIBATTR应改用 TYPELIBATTR
公共结构VARDESC应改用 VARDESC
公共结构VARDESC.DESCUNION注意:此结构已过时。应改用 VARDESC.DESCUNION
委托

 委托说明
公共委托ObjectCreationDelegate创建 COM 对象。
枚举

 枚举说明
公共枚举AssemblyRegistrationFlags定义当注册程序集时使用的一组标志。
公共枚举CALLCONV应改用 CALLCONV
公共枚举CallingConvention指定调用在非托管代码中实现的方法所需的调用约定。
公共枚举CharSet规定封送字符串应使用何种字符集。
公共枚举ClassInterfaceType标识为某个类生成的类接口的类型。
公共枚举ComInterfaceType标识如何向 COM 公开接口。
公共枚举ComMemberType描述 COM 成员的类型。
公共枚举DESCKIND应改用 DESCKIND
公共枚举ExporterEventKind描述类型库导出程序在导出类型库时生成的回调。
公共枚举FUNCFLAGS应改用 FUNCFLAGS
公共枚举FUNCKIND应改用 FUNCKIND
公共枚举GCHandleType表示 GCHandle 类可以分配的句柄的类型。
公共枚举IDispatchImplType指示对特定类使用何种 IDispatch 实现。
公共枚举IDLFLAG应改用 IDLFLAG
公共枚举IMPLTYPEFLAGS应改用 IMPLTYPEFLAGS
公共枚举ImporterEventKind描述类型库导入程序在导入类型库时生成的回调。
公共枚举INVOKEKIND应改用 INVOKEKIND
公共枚举LayoutKind控制当导出到非托管代码时对象的布局。
公共枚举LIBFLAGS应改用 LIBFLAGS
公共枚举PARAMFLAG应改用 PARAMFLAG
公共枚举RegistrationClassContext指定执行上下文集,类对象将在这些上下文中对请求构造实例的请求可用。
公共枚举RegistrationConnectionType定义到类对象的连接的类型。
公共枚举SYSKIND应改用 SYSKIND
公共枚举TYPEFLAGS应改用 TYPEFLAGS
公共枚举TYPEKIND应改用 TYPEKIND
公共枚举TypeLibExporterFlags指示应该如何生成类型库。
公共枚举TypeLibFuncFlags描述从中导入该方法的 COM 类型库中 FUNCFLAGS 的原始设置。
公共枚举TypeLibImporterFlags指示应该如何生成程序集。
公共枚举TypeLibTypeFlags描述从中导入该类型的 COM 类型库中 TYPEFLAGS 的原始设置。
公共枚举TypeLibVarFlags描述从中导入此变量的 COM 类型库中 VARFLAGS 的原始设置。
公共枚举UnmanagedType指定如何将参数或字段封送到非托管代码。
公共枚举VarEnum指示当数组作为 UnmanagedType.SafeArray 从托管代码封送到非托管代码时,如何封送该数组的元素。
公共枚举VARFLAGS应改用 VARFLAGS
标记 :


Page view tracker