네임스페이 System.Runtime.InteropServices 스는 디자인 타임에 사용자가 적용한 특성, 변환 프로세스 중에 COM interop 도구 및 API에 의해 적용된 특성, 사용자 또는 COM interop에서 적용한 특성의 세 가지 범주를 제공합니다.
관리 코드에 특성을 적용하는 작업에 익숙하지 않은 경우 특성을 사용하여 메타데이터 확장을 참조하세요. 다른 사용자 지정 특성과 마찬가지로 형식, 메서드, 속성, 매개 변수, 필드 및 기타 멤버에 interop 관련 특성을 적용할 수 있습니다.
Design-Time 특성
디자인 타임 특성을 사용하여 COM interop 도구 및 API에서 수행하는 변환 프로세스의 결과를 조정할 수 있습니다. 다음 표에서는 관리되는 소스 코드에 적용할 수 있는 특성에 대해 설명합니다. 경우에 따라 COM interop 도구는 이 표에 설명된 특성을 적용할 수도 있습니다.
| 특성 | 설명 |
|---|---|
| AutomationProxyAttribute | 형식을 Automation 마샬러나 사용자 정의 프록시 및 스텁을 사용하여 마샬링할 것인지를 지정합니다. |
| ClassInterfaceAttribute | 클래스에 대해 생성된 인터페이스의 형식을 제어합니다. |
| CoClassAttribute | 형식 라이브러리에서 가져온 원래 coclass의 CLSID를 식별합니다. COM interop 도구는 일반적으로 이 특성을 적용합니다. |
| ComImportAttribute | COM 형식 라이브러리에서 coclass 또는 인터페이스 정의를 가져왔음을 나타냅니다. 런타임은 이 플래그를 사용하여 형식을 활성화하고 마샬링하는 방법을 알고 있습니다. 이 특성은 형식을 형식 라이브러리로 다시 내보내는 것을 금지합니다. COM interop 도구는 일반적으로 이 특성을 적용합니다. |
| ComRegisterFunctionAttribute | 등록 프로세스 중에 사용자가 작성한 코드를 실행할 수 있도록 COM에서 사용하기 위해 어셈블리를 등록할 때 메서드를 호출해야 임을 나타냅니다. |
| ComSourceInterfacesAttribute | 클래스에 대한 이벤트의 원본인 인터페이스를 식별합니다. COM interop 도구는 이 특성을 적용할 수 있습니다. |
| ComUnregisterFunctionAttribute | 프로세스 중에 사용자가 작성한 코드를 실행할 수 있도록 어셈블리가 COM에서 등록 취소될 때 메서드를 호출해야 임을 나타냅니다. |
| ComVisibleAttribute | 특성 값이 false이면 COM에 표시되지 않는 형식을 렌더링합니다. 이 특성은 개별 형식 또는 전체 어셈블리에 적용하여 COM 표시 여부를 제어할 수 있습니다. 기본적으로 관리되는 모든 공용 형식이 표시됩니다. 특성을 표시할 필요가 없습니다. |
| DispIdAttribute | 메서드 또는 필드의 COM DISPID(디스패치 식별자)를 지정합니다. 이 특성에는 설명하는 메서드, 필드 또는 속성에 대한 DISPID가 포함됩니다. COM interop 도구는 이 특성을 적용할 수 있습니다. |
| ComDefaultInterfaceAttribute | .NET에서 구현된 COM 클래스의 기본 인터페이스를 나타냅니다. COM interop 도구는 이 특성을 적용할 수 있습니다. |
| FieldOffsetAttribute | StructLayoutAttribute와 함께 사용할 때 클래스 내의 각 필드의 실제 위치를 나타내며 LayoutKind는 Explicit로 설정됩니다. |
| GuidAttribute | 클래스, 인터페이스 또는 전체 형식 라이브러리의 GUID(Globally Unique Identifier)를 지정합니다. 특성에 전달된 문자열은 System.Guid 형식에 허용되는 생성자 인수인 형식이어야 합니다. COM interop 도구는 이 특성을 적용할 수 있습니다. |
| IDispatchImplAttribute | 공용 언어 런타임에서 이중 인터페이스 및 dispinterface를 COM에 노출할 때 사용하는 IDispatch 인터페이스 구현을 나타냅니다. |
| InAttribute | 데이터를 호출자에게 전달해야 함을 나타냅니다. 특성 매개 변수에 사용할 수 있습니다. |
| InterfaceTypeAttribute | 관리되는 인터페이스가 COM 클라이언트에 노출되는 방식을 제어합니다(듀얼, IUnknown 기반, IDispatch만 해당). COM interop 도구는 이 특성을 적용할 수 있습니다. |
| LCIDConversionAttribute | 관리되지 않는 메서드 서명에 LCID 매개 변수가 있음을 나타냅니다. COM interop 도구는 이 특성을 적용할 수 있습니다. |
| MarshalAsAttribute | 관리 코드와 관리되지 않는 코드 간에 필드 또는 매개 변수의 데이터를 마샬링하는 방법을 나타냅니다. 각 데이터 형식에는 기본 마샬링 동작이 있기 때문에 특성은 항상 선택 사항입니다. COM interop 도구는 이 특성을 적용할 수 있습니다. |
| OptionalAttribute | 매개 변수가 선택 사항임을 나타냅니다. COM interop 도구는 이 특성을 적용할 수 있습니다. |
| OutAttribute | 필드 또는 매개 변수의 데이터를 호출된 개체에서 해당 호출자에게 다시 마샬링해야 했음을 나타냅니다. |
| PreserveSigAttribute | 상호 운용 호출 중에 일반적으로 발생하는 HRESULT 또는 반환값 서명 변환을 억제합니다. 이 특성은 형식 라이브러리 내보내기뿐만 아니라 마샬링에도 영향을 줍니다. COM interop 도구는 이 특성을 적용할 수 있습니다. |
| ProgIdAttribute | .NET 클래스의 ProgID를 지정합니다. 특성 클래스에 사용할 수 있습니다. |
| StructLayoutAttribute | 클래스 필드의 실제 레이아웃을 제어합니다. COM interop 도구는 이 특성을 적용할 수 있습니다. |
Conversion-Tool 특성
다음 표에서는 변환 프로세스 중에 COM interop 도구가 적용되는 특성을 설명합니다. 디자인 타임에는 이러한 특성을 적용하지 않습니다.
| 특성 | 설명 |
|---|---|
| ComAliasNameAttribute | 매개 변수 또는 필드 형식에 대한 COM 별칭을 나타냅니다. 매개 변수, 필드 또는 반환 값을 특성 지정하는 데 사용할 수 있습니다. |
| ComConversionLossAttribute | 형식 라이브러리에서 어셈블리로 가져올 때 클래스 또는 인터페이스에 대한 정보가 손실되었음을 나타냅니다. |
| ComEventInterfaceAttribute | 이벤트 인터페이스의 메서드를 구현하는 소스 인터페이스 및 클래스를 식별합니다. |
| ImportedFromTypeLibAttribute | 어셈블리가 원래 COM 형식 라이브러리에서 가져온 것임을 나타냅니다. 이 특성에는 원래 형식 라이브러리의 형식 라이브러리 정의가 포함됩니다. |
| TypeLibFuncAttribute | COM 형식 라이브러리에서 이 함수에 대해 원래 가져온 FUNCFLAGS 를 포함합니다. |
| TypeLibTypeAttribute | COM 형식 라이브러리에서 이 형식에 대해 원래 가져온 TYPEFLAGS 를 포함합니다. |
| TypeLibVarAttribute | COM 형식 라이브러리에서 이 변수에 대해 원래 가져온 VARFLAGS 를 포함합니다. |
참고하십시오
GitHub에서 Microsoft와 공동 작업
이 콘텐츠의 원본은 GitHub에서 찾을 수 있으며, 여기서 문제와 끌어오기 요청을 만들고 검토할 수도 있습니다. 자세한 내용은 참여자 가이드를 참조하세요.
.NET