다음을 통해 공유


System.Runtime.InteropServices 네임스페이스

System.Runtime.InteropServices 네임스페이스는 COM interop 및 플랫폼 호출 서비스를 지원하는 많은 멤버를 제공합니다. 이러한 서비스에 대해 잘 모를 경우에는 비관리 코드와의 상호 운용을 참조하십시오.

이 네임스페이스의 멤버는 다음 표에서 설명하는 몇 가지 범주의 기능을 제공합니다. 특성은 구조 정렬 방법 또는 문자열 표시 방법과 같은 마샬링 동작을 제어합니다. 가장 중요한 특성은 관리되지 않는 API에 액세스하기 위해 플랫폼 호출 메서드를 정의하는 데 사용하는 DllImportAttribute 및 관리되는 메모리와 관리되지 않는 메모리 간의 데이터 마샬링 방법을 지정하는 데 사용하는 MarshalAsAttribute입니다.

클래스

  클래스 설명
Public class AutomationProxyAttribute 자동화 마샬러 또는 사용자 지정 프록시 및 스텁을 사용하여 형식을 마샬링할지 여부를 지정합니다.
Public class BestFitMappingAttribute 유니코드 문자를 일치하는 가장 비슷한 ANSI 문자로 변환할지 여부를 제어합니다.
Public class BStrWrapper VT_BSTR 형식의 데이터를 관리 코드에서 비관리 코드로 마샬링합니다. 이 클래스는 상속될 수 없습니다.
Public class ClassInterfaceAttribute COM에 노출될 클래스에 대해 생성될 클래스 인터페이스의 형식을 나타냅니다(인터페이스가 생성되는 경우).
Public class CoClassAttribute 형식 라이브러리에서 가져온 coclass의 클래스 식별자를 지정합니다.
Public class ComAliasNameAttribute 매개 변수 또는 필드 형식에 대한 COM 별칭을 나타냅니다.
Public class ComCompatibleVersionAttribute 현재 어셈블리 버전의 모든 클래스가 이전 어셈블리 버전의 클래스와 호환된다는 것을 COM 클라이언트에 나타냅니다.
Public class ComConversionLossAttribute 형식 라이브러리에서 어셈블리로 클래스 또는 인터페이스를 가져올 때 클래스 또는 인터페이스에 대한 정보가 손실되었음을 나타냅니다.
Public class ComDefaultInterfaceAttribute COM에 노출할 기본 인터페이스를 지정합니다. 이 클래스는 상속될 수 없습니다.
Public class ComEventInterfaceAttribute 소스 인터페이스를 식별하고 COM 형식 라이브러리에서 coclass를 가져올 때 생성되는 이벤트 인터페이스의 메서드를 구현하는 클래스를 식별합니다.
Public class COMException 인식할 수 없는 HRESULT가 COM 메서드 호출에서 반환되면 예외가 throw됩니다.
Public class ComImportAttribute 특성 사용 형식이 이미 COM에서 정의되었음을 나타냅니다.
Public class ComRegisterFunctionAttribute COM에서 사용할 어셈블리를 등록할 때 호출할 메서드를 지정합니다. 이렇게 하면 등록 중에 사용자가 작성한 코드를 실행할 수 있습니다.
Public class ComSourceInterfacesAttribute 특성 사용 클래스에 대한 COM 이벤트 소스로 노출되는 인터페이스 목록을 식별합니다.
Public class ComUnregisterFunctionAttribute COM에서 사용할 어셈블리의 등록을 취소할 때 호출할 메서드를 지정합니다. 이렇게 하면 등록 취소 중에 사용자가 작성한 코드를 실행할 수 있습니다.
Public class ComVisibleAttribute COM에 대한 어셈블리 내의 관리되는 개별 형식이나 멤버 또는 모든 형식의 액세스 가능성을 제어합니다.
Public class CriticalHandle 핸들 리소스의 래퍼 클래스를 나타냅니다.
Public class CurrencyWrapper 마샬러가 VT_CY으로 마샬링할 개체를 래핑합니다.
Public class DefaultCharSetAttribute CharSet 열거형의 값을 지정합니다. 이 클래스는 상속될 수 없습니다.
Public class DefaultParameterValueAttribute 기본 매개 변수를 지원하는 언어에서 호출할 경우 매개 변수의 기본값을 설정합니다. 이 클래스는 상속될 수 없습니다.
Public class DispatchWrapper 마샬러가 VT_DISPATCH으로 마샬링할 개체를 래핑합니다.
Public class DispIdAttribute 메서드, 필드 또는 속성의 COM DispId(디스패치 식별자)를 지정합니다.
Public class DllImportAttribute 관리되지 않는 DLL(동적 연결 라이브러리)에서 특성 사용 해당 메서드를 정적 진입점으로 노출함을 나타냅니다.
Public class ErrorWrapper 마샬러가 VT_ERROR으로 마샬링할 개체를 래핑합니다.
Public class ExtensibleClassFactory 만드는 동안 관리되지 않는 개체에서 확장되는 관리되는 개체를 사용자 지정할 수 있습니다.
Public class ExternalException 모든 COM interop 예외 및 SEH(구조적 예외 처리) 예외에 대한 기본 예외 형식입니다.
Public class FieldOffsetAttribute 클래스 또는 구조체의 관리되지 않는 표현 내에서 필드의 실제 위치를 나타냅니다.
Public class GuidAttribute 자동 GUID가 부적당할 경우 명시적 System.Guid를 제공합니다.
Public class HandleCollector 지정된 임계값에 도달한 경우 사용 중인 핸들을 추적하고 가비지 수집을 강제로 수행합니다.
Public class IDispatchImplAttribute 이중 인터페이스 및 dispinterface를 COM에 노출 시킬 때 공용 언어 런타임에서 사용할 IDispatch 구현을 나타냅니다.
Public class ImportedFromTypeLibAttribute 어셈블리 내부에서 정의된 형식이 처음에 형식 라이브러리에서 정의되었음을 나타냅니다.
Public class InAttribute 데이터가 호출자에서 피호출자로 마샬링되어야 하고, 호출자에게는 다시 마샬링되지 않아도 됨을 나타냅니다.
Public class InterfaceTypeAttribute 관리되는 인터페이스를 COM에 노출할 경우 이중 인터페이스인지, 디스패치 전용 인터페이스인지 또는 IUnknown 전용 인터페이스인지 여부를 나타냅니다.
Public class InvalidComObjectException 유효하지 않은 COM 개체를 사용할 때 발생하는 예외입니다.
Public class InvalidOleVariantTypeException 관리 코드에 마샬링 할 수 없는 변형 형식의 인수를 만날 때 마샬러가 발생시키는 예외입니다.
Public class LCIDConversionAttribute 메서드의 관리되지 않는 시그니처에 LCID(로캘 식별자) 매개 변수가 필요함을 나타냅니다.
Public class Marshal 관리되지 않는 메모리를 할당하고, 관리되지 않는 메모리 블록을 복사하고, 관리되는 형식을 관리되지 않는 형식으로 변환하는 메서드의 컬렉션 및 비관리 코드와 상호 작용할 때 사용되는 기타 메서드의 컬렉션을 제공합니다.
Public class MarshalAsAttribute 관리 코드와 비관리 코드 간에 데이터를 마샬링하는 방법을 나타냅니다.
Public class MarshalDirectiveException 지원되지 않는 MarshalAsAttribute가 나타날 때 마샬러에서 throw하는 예외입니다.
Public class OptionalAttribute 매개 변수가 선택적임을 나타냅니다.
Public class OutAttribute 데이터가 피호출자로부터 호출자로 마샬링 됨을 나타냅니다.
Public class PreserveSigAttribute COM interop 호출 중에 발생하는 HRESULT 또는 retval 시그니처 변환을 생략해야 함을 나타냅니다.
Public class PrimaryInteropAssemblyAttribute 특성 사용 어셈블리가 주 interop 어셈블리임을 나타냅니다.
Public class ProgIdAttribute 사용자가 클래스의 ProgID를 지정할 수 있게 합니다.
Public class RegistrationServices COM에서 사용할 관리되는 어셈블리의 등록 및 등록 취소를 위한 서비스 집합을 제공합니다.
Public class RuntimeEnvironment 공용 언어 런타임 환경에 대한 정보를 반환하는 static 메서드 컬렉션을 제공합니다.
Public class SafeArrayRankMismatchException 들어오는 SAFEARRAY의 순위가 관리되는 서명에서 지정된 순위와 일치하지 않을 경우 발생한 예외입니다.
Public class SafeArrayTypeMismatchException 들어오는 SAFEARRAY의 형식이 관리되는 서명에서 지정된 형식과 일치하지 않을 경우 발생한 예외입니다.
Public class SafeHandle 운영 체제 핸들의 래퍼 클래스를 나타냅니다.
Public class SEHException SEH(Structured Exception Handler) 오류를 나타냅니다.
Public class SetWin32ContextInIDispatchAttribute 이 특성은 사용되지 않습니다.
Public class StandardOleMarshalObject 표준 CLR(공용 언어 런타임) 자유 스레드된 마샬러를 표준 OLE STA 마샬러로 바꿉니다.
Public class StructLayoutAttribute StructLayoutAttribute 클래스를 사용하면 클래스 또는 구조체의 데이터 필드에 대한 실제 레이아웃을 제어할 수 있습니다.
Public class TypeLibConverter 관리되는 어셈블리를 COM 형식 라이브러리로 변환하거나 반대로 변환하는 서비스 집합을 제공합니다.
Public class TypeLibFuncAttribute 처음에 COM 형식 라이브러리에서 이 메서드로 가져온 FUNCFLAGS가 들어 있습니다.
Public class TypeLibImportClassAttribute 인터페이스를 단독으로 사용하는 Type을 지정합니다. 이 클래스는 상속될 수 없습니다.
Public class TypeLibTypeAttribute 처음에 COM 형식 라이브러리에서 이 형식으로 가져온 TYPEFLAGS가 들어 있습니다.
Public class TypeLibVarAttribute 처음에 COM 형식 라이브러리에서 이 필드로 가져온 VARFLAGS가 들어 있습니다.
Public class TypeLibVersionAttribute 내보낸 형식 라이브러리의 버전 번호를 지정합니다.
Public class UnknownWrapper 마샬러가 VT_UNKNOWN으로 마샬링할 개체를 래핑합니다.
Public class UnmanagedFunctionPointerAttribute 관리되지 않는 함수 포인터로 비관리 코드에 전달하거나 비관리 코드로부터 전달된 대리자 시그니처의 마샬링 동작을 제어합니다. 이 클래스는 상속될 수 없습니다.
Public class VariantWrapper VT_VARIANT | VT_BYREF 형식의 데이터를 관리 코드에서 비관리 코드로 마샬링합니다. 이 클래스는 상속될 수 없습니다.

인터페이스

  인터페이스 설명
Public interface _Activator System.Activator 클래스를 비관리 코드에 노출합니다.
Public interface _Assembly System.Reflection.Assembly 클래스의 public 멤버를 비관리 코드에 노출합니다.
Public interface _AssemblyBuilder System.Reflection.Emit.AssemblyBuilder 클래스를 비관리 코드에 노출합니다.
Public interface _AssemblyName AssemblyName 클래스를 비관리 코드에 노출합니다.
Public interface _Attribute System.Attribute 클래스를 비관리 코드에 노출합니다.
Public interface _ConstructorBuilder System.Reflection.Emit.ConstructorBuilder 클래스를 비관리 코드에 노출합니다.
Public interface _ConstructorInfo System.Reflection.ConstructorInfo 클래스의 public 멤버를 비관리 코드에 노출합니다.
Public interface _CustomAttributeBuilder System.Reflection.Emit.CustomAttributeBuilder 클래스를 비관리 코드에 노출합니다.
Public interface _EnumBuilder System.Reflection.Emit.EnumBuilder 클래스를 비관리 코드에 노출합니다.
Public interface _EventBuilder System.Reflection.Emit.EventBuilder 클래스를 비관리 코드에 노출합니다.
Public interface _EventInfo System.Reflection.EventInfo 클래스의 public 멤버를 비관리 코드에 노출합니다.
Public interface _Exception System.Exception 클래스의 public 멤버를 비관리 코드에 노출합니다.
Public interface _FieldBuilder System.Reflection.Emit.FieldBuilder 클래스를 비관리 코드에 노출합니다.
Public interface _FieldInfo System.Reflection.FieldInfo 클래스의 public 멤버를 비관리 코드에 노출합니다.
Public interface _ILGenerator System.Reflection.Emit.ILGenerator 클래스를 비관리 코드에 노출합니다.
Public interface _LocalBuilder System.Reflection.Emit.LocalBuilder 클래스를 비관리 코드에 노출합니다.
Public interface _MemberInfo System.Reflection.MemberInfo 클래스의 public 멤버를 비관리 코드에 노출합니다.
Public interface _MethodBase System.Reflection.MethodBase 클래스의 public 멤버를 비관리 코드에 노출합니다.
Public interface _MethodBuilder MethodBuilder 클래스를 비관리 코드에 노출합니다.
Public interface _MethodInfo System.Reflection.MethodInfo 클래스의 public 멤버를 비관리 코드에 노출합니다.
Public interface _MethodRental System.Reflection.Emit.MethodRental 클래스를 비관리 코드에 노출합니다.
Public interface _Module Module 클래스를 비관리 코드에 노출합니다.
Public interface _ModuleBuilder System.Reflection.Emit.ModuleBuilder 클래스를 비관리 코드에 노출합니다.
Public interface _ParameterBuilder System.Reflection.Emit.ParameterBuilder 클래스를 비관리 코드에 노출합니다.
Public interface _ParameterInfo System.Reflection.ParameterInfo 클래스를 비관리 코드에 노출합니다.
Public interface _PropertyBuilder System.Reflection.Emit.PropertyBuilder 클래스를 비관리 코드에 노출합니다.
Public interface _PropertyInfo System.Reflection.PropertyInfo 클래스의 public 멤버를 비관리 코드에 노출합니다.
Public interface _SignatureHelper System.Reflection.Emit.SignatureHelper 클래스를 비관리 코드에 노출합니다.
Public interface _Thread System.Threading.Thread 클래스를 비관리 코드에 노출합니다.
Public interface _Type System.Type 클래스의 public 멤버를 비관리 코드에 노출합니다.
Public interface _TypeBuilder System.Reflection.Emit.TypeBuilder 클래스를 비관리 코드에 노출합니다.
Public interface ICustomAdapter 클라이언트에서 사용자 지정 마샬러가 제공한 어댑터 개체가 아니라 실제 개체에 액세스할 수 있는 방법을 제공합니다.
Public interface ICustomFactory 사용자가 MarshalByRefObject를 확장하는 관리되는 개체에 활성화 코드를 쓸 수 있게 합니다.
Public interface ICustomMarshaler 메서드 호출 처리를 위한 사용자 지정 래퍼를 제공하기 위한 것입니다.
Public interface IRegistrationServices COM에서 사용할 관리되는 어셈블리의 등록 및 등록 취소를 위한 서비스 집합을 제공합니다.
Public interface ITypeLibConverter 관리되는 어셈블리를 COM 형식 라이브러리로 변환하거나 반대로 변환하는 서비스 집합을 제공합니다.
Public interface ITypeLibExporterNameProvider 형식 라이브러리로 내보낼 때 이름의 대/소문자에 대한 제어를 제공합니다.
Public interface ITypeLibExporterNotifySink 어셈블리 변환기에서 호출자에게 변환의 상태를 알리고 변환 프로세스 자체에 호출자를 포함시키기 위한 콜백 메커니즘을 제공합니다.
Public interface ITypeLibImporterNotifySink 형식 라이브러리 변환기에서 호출자에게 변환의 상태를 알리고 변환 프로세스 자체에 호출자를 포함시키기 위한 콜백 메커니즘을 제공합니다.
Public interface UCOMIBindCtx 대신 BIND_OPTS를 사용합니다.
Public interface UCOMIConnectionPoint 대신 IConnectionPoint를 사용합니다.
Public interface UCOMIConnectionPointContainer 대신 IConnectionPointContainer를 사용합니다.
Public interface UCOMIEnumConnectionPoints 대신 IEnumConnectionPoints를 사용합니다.
Public interface UCOMIEnumConnections 대신 IEnumConnections를 사용합니다.
Public interface UCOMIEnumMoniker 대신 IEnumMoniker를 사용합니다.
Public interface UCOMIEnumString 대신 IEnumString를 사용합니다.
Public interface UCOMIEnumVARIANT 대신 IEnumVARIANT를 사용합니다.
Public interface UCOMIMoniker 대신 IMoniker를 사용합니다.
Public interface UCOMIPersistFile 참고: 이 인터페이스는 더 이상 사용되지 않습니다. 대신 IPersistFile를 사용합니다.
Public interface UCOMIRunningObjectTable 대신 IRunningObjectTable를 사용합니다.
Public interface UCOMIStream 대신 IStream를 사용합니다.
Public interface UCOMITypeComp 대신 ITypeComp를 사용합니다.
Public interface UCOMITypeInfo 대신 ITypeInfo를 사용합니다.
Public interface UCOMITypeLib 대신 ITypeLib를 사용합니다.

구조체

  구조체 설명
Public structure ArrayWithOffset 지정된 배열 내에 배열 및 오프셋을 캡슐화합니다.
Public structure BIND_OPTS 대신 BIND_OPTS를 사용합니다.
Public structure BINDPTR 대신 BINDPTR를 사용합니다.
Public structure CONNECTDATA 대신 CONNECTDATA를 사용합니다.
Public structure DISPPARAMS 대신 DISPPARAMS를 사용합니다.
Public structure ELEMDESC 대신 ELEMDESC를 사용합니다.
Public structure ELEMDESC.DESCUNION 대신 ELEMDESC.DESCUNION를 사용합니다.
Public structure EXCEPINFO 대신 EXCEPINFO를 사용합니다.
Public structure FILETIME 대신 FILETIME를 사용합니다.
Public structure FUNCDESC 대신 FUNCDESC를 사용합니다.
Public structure GCHandle 관리되지 않는 메모리에서 관리되는 개체에 액세스하기 위한 방법을 제공합니다.
Public structure HandleRef 플랫폼 호출을 사용하여 비관리 코드에 전달된 리소스 핸들을 보유하고 있는 관리되는 개체를 래핑합니다.
Public structure IDLDESC 대신 IDLDESC를 사용합니다.
Public structure PARAMDESC 대신 PARAMDESC를 사용합니다.
Public structure STATSTG 대신 STATSTG를 사용합니다.
Public structure TYPEATTR 대신 TYPEATTR를 사용합니다.
Public structure TYPEDESC 대신 TYPEDESC를 사용합니다.
Public structure TYPELIBATTR 대신 TYPELIBATTR를 사용합니다.
Public structure VARDESC 대신 VARDESC를 사용합니다.
Public structure VARDESC.DESCUNION 참고: 이 구조체는 사용되지 않습니다. 대신 VARDESC.DESCUNION를 사용합니다.

대리자

  대리자 설명
Public delegate ObjectCreationDelegate COM 개체를 만듭니다.

열거형

  열거형 설명
Public enumeration AssemblyRegistrationFlags 어셈블리를 등록할 때 사용된 플래그 집합을 정의합니다.
Public enumeration CALLCONV 대신 CALLCONV를 사용합니다.
Public enumeration CallingConvention 비관리 코드에서 구현된 메서드를 호출하는 데 필요한 호출 규칙을 지정합니다.
Public enumeration CharSet 마샬링된 문자열이 사용할 문자 집합을 지정합니다.
Public enumeration ClassInterfaceType 클래스에 대해 생성되는 클래스 인터페이스의 형식을 식별합니다.
Public enumeration ComInterfaceType COM에 인터페이스를 노출시키는 방법을 식별합니다.
Public enumeration ComMemberType COM 멤버의 형식을 설명합니다.
Public enumeration DESCKIND 대신 DESCKIND를 사용합니다.
Public enumeration ExporterEventKind 형식 라이브러리를 내보낼 때 형식 라이브러리 내보내기가 만드는 콜백을 설명합니다.
Public enumeration FUNCFLAGS 대신 FUNCFLAGS를 사용합니다.
Public enumeration FUNCKIND 대신 FUNCKIND를 사용합니다.
Public enumeration GCHandleType GCHandle 클래스가 할당할 수 있는 핸들의 형식을 나타냅니다.
Public enumeration IDispatchImplType 특정 클래스에서 사용될 IDispatch 구현을 나타냅니다.
Public enumeration IDLFLAG 대신 IDLFLAG를 사용합니다.
Public enumeration IMPLTYPEFLAGS 대신 IMPLTYPEFLAGS를 사용합니다.
Public enumeration ImporterEventKind 형식 라이브러리를 가져올 때 형식 라이브러리 가져오기가 만드는 콜백을 설명합니다.
Public enumeration INVOKEKIND 대신 INVOKEKIND를 사용합니다.
Public enumeration LayoutKind 비관리 코드로 내보낼 때 개체의 레이아웃을 제어합니다.
Public enumeration LIBFLAGS 대신 LIBFLAGS를 사용합니다.
Public enumeration PARAMFLAG 대신 PARAMFLAG를 사용합니다.
Public enumeration RegistrationClassContext 인스턴스 생성 요청에 클래스 개체를 사용할 수 있도록 하는 실행 컨텍스트 집합을 지정합니다.
Public enumeration RegistrationConnectionType 클래스 개체에 대한 연결 형식을 정의합니다.
Public enumeration SYSKIND 대신 SYSKIND를 사용합니다.
Public enumeration TYPEFLAGS 대신 TYPEFLAGS를 사용합니다.
Public enumeration TYPEKIND 대신 TYPEKIND를 사용합니다.
Public enumeration TypeLibExporterFlags 형식 라이브러리가 생성되는 방법을 나타냅니다.
Public enumeration TypeLibFuncFlags 이 메서드를 가져온 COM 형식 라이브러리에 있는 FUNCFLAGS의 처음 설정을 설명합니다.
Public enumeration TypeLibImporterFlags 어셈블리가 생성되는 방법을 나타냅니다.
Public enumeration TypeLibTypeFlags 이 형식을 가져온 COM 형식 라이브러리에 있는 TYPEFLAGS의 처음 설정을 설명합니다.
Public enumeration TypeLibVarFlags 이 변수를 가져온 COM 형식 라이브러리에 있는 VARFLAGS의 처음 설정을 설명합니다.
Public enumeration UnmanagedType 매개 변수나 필드를 비관리 코드로 마샬링하는 방법을 식별합니다.
Public enumeration VarEnum 배열이 관리 코드에서 비관리 코드로 UnmanagedType.SafeArray로 마샬링될 때 배열 요소가 마샬링될 방법을 나타냅니다.
Public enumeration VARFLAGS 대신 VARFLAGS를 사용합니다.