System.Runtime.InteropServices 命名空間
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
提供各種支援 COM Interop 和平臺叫用服務的成員。 如果您不熟悉這些服務,請參閱 與 Unmanaged 程式代碼互操作。
類別
AllowReversePInvokeCallsAttribute |
允許 Unmanaged 方法呼叫 Managed 方法。 |
AutomationProxyAttribute |
指定是否應該使用自動化封送處理器或自定義 Proxy 和存根封送處理類型。 |
BestFitMappingAttribute |
控制 Unicode 字元是否會轉換成最接近的 ANSI 字元。 |
BStrWrapper |
封送處理類型 |
ClassInterfaceAttribute |
如果介面完全產生,表示要針對公開給 COM 之類別產生的類別介面類型。 |
CoClassAttribute |
指定從類型連結庫匯入之coclass的類別標識碼。 |
CollectionsMarshal |
不安全的類別,提供一組方法來存取集合的基礎數據表示法。 |
ComAliasNameAttribute |
指出參數或欄位類型的 COM 別名。 |
ComAwareEventInfo |
允許事件處理程式的晚期綁定註冊。 |
ComCompatibleVersionAttribute |
向 COM 用戶端指出,元件目前版本中的所有類別都與舊版元件中的類別相容。 |
ComConversionLossAttribute |
表示從類型連結庫匯入至元件時,類別或介面的相關信息遺失。 |
ComDefaultInterfaceAttribute |
指定要公開給 COM 的預設介面。 無法繼承這個類別。 |
ComEventInterfaceAttribute |
識別來源介面和類別,這個類別會實作從 COM 類型連結庫匯入 coclass 時所產生的事件介面方法。 |
ComEventsHelper |
提供方法,讓 .NET 委派處理要從 COM 物件新增和移除的事件。 |
COMException |
從 COM 方法呼叫傳回無法辨識的 HRESULT 時所擲回的例外狀況。 |
ComImportAttribute |
表示屬性化類型先前已在 COM 中定義。 |
ComRegisterFunctionAttribute |
指定當您註冊元件以供 COM 使用的元件時所要呼叫的方法;這可在註冊程式期間執行使用者撰寫的程序代碼。 |
ComSourceInterfacesAttribute |
識別公開為屬性類別之 COM 事件來源的介面清單。 |
ComUnregisterFunctionAttribute |
指定當您取消註冊元件以供 COM 使用時所要呼叫的方法;這允許在取消註冊程式期間執行使用者撰寫的程序代碼。 |
ComVisibleAttribute |
控制元件內個別 Managed 類型或成員,或元件內所有類型之輔助功能。 |
ComWrappers |
管理 COM IUnknown 型別包裝函式的類別。 |
CriticalHandle |
表示句柄資源的包裝函式類別。 |
CurrencyWrapper |
包裝封送處理器應該封送處理為 |
DefaultCharSetAttribute |
指定 CharSet 列舉的值。 無法繼承這個類別。 |
DefaultDllImportSearchPathsAttribute |
指定用來搜尋提供平台調用函式之 DLL 的路徑。 |
DefaultParameterValueAttribute |
從支援預設參數的語言呼叫時,設定參數的預設值。 無法繼承這個類別。 |
DispatchWrapper |
包裝封送處理器應該封送處理為 |
DispIdAttribute |
指定方法、欄位或屬性的 COM 分派識別碼 (DISPID)。 |
DllImportAttribute |
表示屬性化方法是由 Unmanaged 動態連結庫 (DLL) 公開為靜態進入點。 |
DynamicInterfaceCastableImplementationAttribute |
GetInterfaceImplementation(RuntimeTypeHandle)傳回之任何型別所需的屬性。 |
ErrorWrapper |
包裝封送處理器應該封送處理為 |
ExtensibleClassFactory |
啟用在建立期間從 Unmanaged 物件延伸的 Managed 物件自定義。 |
ExternalException |
所有 COM Interop 例外狀況和結構化例外狀況處理 (SEH) 例外狀況的基底例外狀況類型。 |
FieldOffsetAttribute |
表示類別或結構之 Unmanaged 表示法內的欄位實體位置。 |
GuidAttribute |
當不需要自動 GUID 時,提供明確的 Guid。 |
HandleCollector |
追蹤未處理的句柄,並在達到指定的臨界值時強制垃圾收集。 |
IDispatchImplAttribute |
指出將雙重介面和散發介面公開給 COM 時,Common Language Runtime 會使用哪些 |
ImmutableCollectionsMarshal |
不安全的類別,提供一組方法來存取不可變集合的基礎數據表示法。 |
ImportedFromTypeLibAttribute |
表示元件內定義的類型原本是在類型連結庫中定義。 |
InAttribute |
表示數據應該從呼叫端封送處理至被呼叫端,但不應該傳回給呼叫端。 |
InterfaceTypeAttribute |
指出當公開給 COM 時,Managed 介面為雙重、僅限分派或 |
InvalidComObjectException |
使用無效 COM 物件時擲回的例外狀況。 |
InvalidOleVariantTypeException |
當封送處理器遇到無法封送處理至 Managed 程式代碼之 Variant 類型的自變數時,所擲回的例外狀況。 |
JsonMarshal |
提供各種支援 COM Interop 和平臺叫用服務的成員。 如果您不熟悉這些服務,請參閱 與 Unmanaged 程式代碼互操作。 |
LCIDConversionAttribute |
表示方法的 Unmanaged 簽章需要地區設定識別碼 (LCID) 參數。 |
LibraryImportAttribute |
表示來源產生器應該為封送處理自變數建立函式,而不是依賴運行時間在運行時間產生對等的封送處理函式。 |
ManagedToNativeComInteropStubAttribute |
在 Managed to-COM Interop 案例中提供使用者自定義 Interop 存根的支援。 |
Marshal |
提供方法集合,用於配置 Unmanaged 記憶體、複製 Unmanaged 記憶體區塊,以及將 Managed 轉換成 Unmanaged 類型,以及與 Unmanaged 程式代碼互動時所使用的其他方法。 |
MarshalAsAttribute |
指出如何封送處理Managed與 Unmanaged 程式代碼之間的數據。 |
MarshalDirectiveException |
當封送處理器遇到不支援 MarshalAsAttribute 時所擲回的例外狀況。 |
MemoryMarshal |
提供與 Memory<T>、ReadOnlyMemory<T>、Span<T>和 ReadOnlySpan<T>互操作的方法。 |
NativeLibrary |
提供用來管理原生連結庫的 API。 |
NativeMemory |
這個類別包含主要用來管理原生記憶體的方法。 |
OptionalAttribute |
表示參數是選擇性的。 |
OutAttribute |
表示數據應該從被呼叫端封送處理回呼叫端。 |
PosixSignalContext |
提供 PosixSignalRegistration 事件的數據。 |
PosixSignalRegistration |
處理 PosixSignal。 |
PreserveSigAttribute |
表示應該隱藏 COM Interop 呼叫期間發生的 HRESULT 簽章轉換。 |
PrimaryInteropAssemblyAttribute |
表示屬性化元件是主要 Interop 元件。 |
ProgIdAttribute |
允許使用者指定 類別的 ProgID。 |
RegistrationServices |
提供一組服務,用於註冊和取消註冊 Managed 元件以供 COM 使用。 |
RuntimeEnvironment |
提供傳回 Common Language Runtime 環境相關信息之 |
RuntimeInformation |
提供 .NET 運行時間安裝的相關信息。 |
SafeArrayRankMismatchException |
當傳入 |
SafeArrayTypeMismatchException |
當傳入 |
SafeBuffer |
提供可用於讀取和寫入的受控記憶體緩衝區。 嘗試存取受控制緩衝區外部的記憶體(滿溢和滿溢)會引發例外狀況。 |
SafeHandle |
表示操作系統句柄的包裝函式類別。 這個類別必須繼承。 |
SEHException |
表示結構化例外狀況處理 (SEH) 錯誤。 |
SequenceMarshal |
提供方法集合,以便與 ReadOnlySequence<T>互操作。 |
SetWin32ContextInIDispatchAttribute |
這個屬性已被取代。 |
StandardOleMarshalObject |
以標準 OLE STA 封送處理器取代標準 Common Language Runtime (CLR) 自由線程封送處理器。 |
StructLayoutAttribute |
可讓您控制記憶體中類別或結構之數據欄位的實體配置。 |
SuppressGCTransitionAttribute |
表示在進行 Unmanaged 函式呼叫時,應該略過垃圾收集轉換。 |
TypeIdentifierAttribute |
提供類型等價的支援。 |
TypeLibConverter |
提供一組服務,可將Managed元件轉換成 COM類型庫,反之亦然。 |
TypeLibFuncAttribute |
包含原本從 COM 類型連結庫匯入此方法的 FUNCFLAGS。 |
TypeLibImportClassAttribute |
指定哪些 Type 獨佔使用 介面。 無法繼承這個類別。 |
TypeLibTypeAttribute |
包含原本從 COM 類型庫匯入此類型的 TYPEFLAGS。 |
TypeLibVarAttribute |
包含原本從 COM 類型庫匯入此欄位的 VARFLAGS。 |
TypeLibVersionAttribute |
指定匯出類型庫的版本號碼。 |
UnknownWrapper |
包裝封送處理器應該封送處理為 |
UnmanagedCallConvAttribute |
指定呼叫 Unmanaged 程式代碼中實作的 P/Invoke 方法所需的呼叫慣例。 |
UnmanagedCallersOnlyAttribute |
任何標示為 UnmanagedCallersOnlyAttribute 的方法都可以直接從機器碼呼叫。 函式令牌可以使用 C# 中的 位址 運算子載入至局部變數,並以回呼的形式傳遞至原生方法。 |
UnmanagedFunctionPointerAttribute |
控制傳遞為 Unmanaged 函式指標之委派簽章的封送處理行為,或從 Unmanaged 程式代碼傳遞。 無法繼承這個類別。 |
VariantWrapper |
封送處理類型 |
WasmImportLinkageAttribute |
指定以此屬性標示的 P/Invoke 應該連結為 WASM 匯入。 |
結構
ArrayWithOffset |
封裝陣列和指定陣列內的位移。 |
BIND_OPTS |
請改用 BIND_OPTS。 |
BINDPTR |
請改用 BINDPTR。 |
CLong |
CLong 是不可變的實值類型,表示 C 和 C++ 中的 |
ComWrappers.ComInterfaceDispatch |
COM 介面函式分派的應用程式二進位介面。 |
ComWrappers.ComInterfaceEntry |
目標 VTable 的介面類型和指標。 |
CONNECTDATA |
請改用 CONNECTDATA。 |
CULong |
CULong 是不可變的實值類型,表示 C 和 C++ 中的 |
DISPPARAMS |
請改用 DISPPARAMS。 |
ELEMDESC |
請改用 ELEMDESC。 |
ELEMDESC.DESCUNION |
請改用 ELEMDESC.DESCUNION。 |
EXCEPINFO |
請改用 EXCEPINFO。 |
FILETIME |
請改用 FILETIME。 |
FUNCDESC |
請改用 FUNCDESC。 |
GCHandle |
提供從 Unmanaged 記憶體存取 Managed 物件的方式。 |
HandleRef |
包裝受控物件,該物件會使用平台調用將句柄傳遞給 Unmanaged 程式代碼的資源。 |
IDLDESC |
請改用 IDLDESC。 |
NFloat |
NFloat 是不可變的實值型別,代表與原生整數大小相同的浮動類型。
它應該用來做為 Managed/Unmanaged 界限上的交換類型,以在 32 位平臺上使用 C++ C 類型別名的 Managed 程式代碼 Unmanaged API 中準確表示,或在 64 位平臺上 |
OSPlatform |
表示操作系統平臺。 |
PARAMDESC |
請改用 PARAMDESC。 |
STATSTG |
請改用 STATSTG。 |
TYPEATTR |
請改用 TYPEATTR。 |
TYPEDESC |
請改用 TYPEDESC。 |
TYPELIBATTR |
請改用 TYPELIBATTR。 |
VARDESC |
請改用 VARDESC。 |
VARDESC.DESCUNION |
請改用 VARDESC.DESCUNION。 |
介面
列舉
委派
DllImportResolver |
提供委派,用來透過回呼解析原生連結庫。 |
ObjectCreationDelegate |
建立 COM 物件。 |
備註
此命名空間的成員提供數種功能類別,如下表所示。 屬性控制封送處理行為,例如如何排列結構或如何表示字串。 最重要的屬性是 DllImportAttribute,您用來定義用來存取 Unmanaged API 的平臺叫用方法,以及 MarshalAsAttribute,用來指定如何在 Managed 和 Unmanaged 記憶體之間封送處理數據。