문서를 영문으로 보려면 영문 확인란을 선택하세요. 마우스 포인터를 텍스트 위로 이동시켜 팝업 창에서 영문 텍스트를 표시할 수도 있습니다.
번역
영문
이 설명서는 보관되지만 유지 되지 않습니다.

ComVisibleAttribute 클래스

COM에 대한 어셈블리 내의 관리되는 개별 형식이나 멤버 또는 모든 형식의 액세스 가능성을 제어합니다.

System.Object
  System.Attribute
    System.Runtime.InteropServices.ComVisibleAttribute

네임스페이스:  System.Runtime.InteropServices
어셈블리:  mscorlib(mscorlib.dll)

[AttributeUsageAttribute(AttributeTargets.Assembly|AttributeTargets.Class|AttributeTargets.Struct|AttributeTargets.Enum|AttributeTargets.Method|AttributeTargets.Property|AttributeTargets.Field|AttributeTargets.Interface|AttributeTargets.Delegate, Inherited = false)]
[ComVisibleAttribute(true)]
public sealed class ComVisibleAttribute : Attribute

ComVisibleAttribute 형식에서는 다음과 같은 멤버를 노출합니다.

  이름설명
Public 메서드XNA Framework에서 지원ComVisibleAttribute ComVisibleAttribute 클래스의 새 인스턴스를 초기화합니다.
위쪽

  이름설명
Public 속성TypeId파생 클래스에서 구현된 경우 이 Attribute에 대한 고유 식별자를 가져옵니다. (Attribute에서 상속됨)
Public 속성XNA Framework에서 지원ValueCOM 형식이 표시되는지 여부를 나타내는 값을 가져옵니다.
위쪽

  이름설명
Public 메서드XNA Framework에서 지원Equals인프라입니다. 이 인스턴스가 지정된 개체와 같은지 여부를 나타내는 값을 반환합니다. (Attribute에서 상속됨)
Protected 메서드XNA Framework에서 지원Finalize가비지 수집에서 회수하기 전에 개체에서 리소스를 해제하고 다른 정리 작업을 수행할 수 있게 합니다. (Object에서 상속됨)
Public 메서드XNA Framework에서 지원GetHashCode이 인스턴스에 대한 해시 코드를 반환합니다. (Attribute에서 상속됨)
Public 메서드XNA Framework에서 지원GetType현재 인스턴스의 Type을 가져옵니다. (Object에서 상속됨)
Public 메서드IsDefaultAttribute파생 클래스에서 재정의된 경우 이 인스턴스의 값이 파생 클래스의 기본값인지 여부를 나타냅니다. (Attribute에서 상속됨)
Public 메서드XNA Framework에서 지원Match파생 클래스에서 재정의된 경우 이 인스턴스가 지정된 개체와 같은지 여부를 나타내는 값을 반환합니다. (Attribute에서 상속됨)
Protected 메서드XNA Framework에서 지원MemberwiseClone현재 Object의 단순 복사본을 만듭니다. (Object에서 상속됨)
Public 메서드XNA Framework에서 지원ToString현재 개체를 나타내는 문자열을 반환합니다. (Object에서 상속됨)
위쪽

  이름설명
명시적 인터페이스 구현Private 메서드_Attribute.GetIDsOfNames이름 집합을 해당하는 디스패치 식별자 집합에 매핑합니다. (Attribute에서 상속됨)
명시적 인터페이스 구현Private 메서드_Attribute.GetTypeInfo인터페이스의 형식 정보를 가져오는 데 사용할 수 있는 개체의 형식 정보를 검색합니다. (Attribute에서 상속됨)
명시적 인터페이스 구현Private 메서드_Attribute.GetTypeInfoCount개체에서 제공하는 형식 정보 인터페이스의 수를 검색합니다(0 또는 1). (Attribute에서 상속됨)
명시적 인터페이스 구현Private 메서드_Attribute.Invoke개체에서 노출하는 메서드와 속성에 대한 액세스를 제공합니다. (Attribute에서 상속됨)
위쪽

이 특성은 어셈블리, 인터페이스, 클래스, 구조체, 대리자, 열거형, 필드, 메서드 또는 속성에 적용할 수 있습니다.

기본값은 true이며, 관리되는 형식이 COM에 표시된다는 것을 나타냅니다. 이 특성을 사용할 경우 관리되는 모든 공용 어셈블리 및 형식을 표시할 필요가 없습니다. 기본적으로 이러한 어셈블리 및 형식은 COM에 표시됩니다. public 형식만 표시할 수 있습니다. 이 특성을 사용하여 internal 또는 protected 형식을 COM에 표시하거나 표시되지 않는 형식의 멤버를 표시되게 할 수 없습니다.

어셈블리에서 이 특성을 false로 설정하면 어셈블리 내의 모든 public 형식이 숨겨집니다. 어셈블리 내의 개별 형식을 true로 설정하여 특정 형식만 표시할 수 있습니다. 특정 형식에서 이 특성을 false로 설정하면 해당 형식 및 그 멤버가 숨겨집니다. 그러나 표시되지 않는 형식의 멤버를 표시할 수는 없습니다. 형식에 대해 이 특성을 false로 설정하면 해당 형식이 형식 라이브러리로 내보내지지 않습니다. 또한 클래스가 등록되지 않고, 관리되지 않는 QueryInterface 호출에 대해 인터페이스가 응답하지 않습니다.

클래스와 그 멤버를 명시적으로 false로 설정한 경우가 아니면 상속된 클래스는 원본 클래스에서는 표시되지 않는 COM 기본 클래스의 멤버에 노출시킬 수 있습니다. 예를 들어, ClassA를 false로 설정하고 이 클래스의 멤버에 이 특성을 적용하지 않은 경우에는 클래스와 해당 멤버가 COM에 표시되지 않습니다. 그러나 ClassA에서 ClassB를 파생시킨 다음 ClassB를 COM에 내보낸 경우에는 ClassA의 멤버가 ClassB의 표시되는 기본 클래스 멤버입니다.

내보내기 프로세스에 대한 자세한 내용은 어셈블리를 형식 라이브러리로 변환 요약을 참조하십시오.

다음 예제에서는 클래스의 멤버가 표시되지 않도록 COM에 대한 클래스의 표시 유형을 제어하는 방법을 보여 줍니다. ComVisibleAttribute MyClass에 대해 false로, MyMethodMyProperty에 대해 false로 각각 설정하면, 실수로 상속을 통해 COM에 멤버를 노출하는 것을 방지할 수 있습니다.


using System.Runtime.InteropServices;

[ComVisible(false)]
class MyClass
{
   public MyClass()
   {
      //Insert code here.
   }

   [ComVisible(false)]
   public int MyMethod(string param) 
   {
      return 0;
   }

   public bool MyOtherMethod() 
   {
      return true;
   }

   [ComVisible(false)]
   public int MyProperty
   {
      get
      {
         return MyProperty;
      }
   }
}


.NET Framework

4, 3.5, 3.0, 2.0, 1.1, 1.0에서 지원

.NET Framework Client Profile

4, 3.5 SP1에서 지원

Windows 7, Windows Vista SP1 이상, Windows XP SP3, Windows XP SP2 x64 버전, Windows Server 2008(Server Core는 지원되지 않음), Windows Server 2008 R2(Server Core는 SP1 이상에서 지원됨), Windows Server 2003 SP2

.NET Framework에서 모든 플랫폼의 전체 버전을 지원하지는 않습니다. 지원되는 버전의 목록을 보려면 .NET Framework 시스템 요구 사항을 참조하십시오.

이 형식의 모든 공용 static(Visual Basic의 경우 Shared) 멤버는 스레드로부터 안전합니다. 인터페이스 멤버는 스레드로부터 안전하지 않습니다.
표시: