ComVisibleAttribute 클래스

정의

개별 관리되는 형식이나 멤버의 또는 어셈블리 내 모든 형식의 COM에 대한 접근성을 제어합니다.Controls accessibility of an individual managed type or member, or of all types within an assembly, to COM.

public ref class ComVisibleAttribute sealed : Attribute
[System.Runtime.InteropServices.ComVisible(true)]
[System.AttributeUsage(System.AttributeTargets.Assembly | System.AttributeTargets.Class | System.AttributeTargets.Delegate | System.AttributeTargets.Enum | System.AttributeTargets.Field | System.AttributeTargets.Interface | System.AttributeTargets.Method | System.AttributeTargets.Property | System.AttributeTargets.Struct, Inherited=false)]
public sealed class ComVisibleAttribute : Attribute
type ComVisibleAttribute = class
    inherit Attribute
Public NotInheritable Class ComVisibleAttribute
Inherits Attribute
상속
ComVisibleAttribute
특성

예제

다음 예제에서는 해당 멤버가 표시 되지 않습니다 있도록 com 클래스의 표시 유형을 제어 하는 방법을 보여 줍니다.The following example shows how you can control the visibility to COM of a class so that its members are invisible. 설정 하 여 ComVisibleAttributefalseMyClass(SampleClass Visual Basic 예제에서), 및 false 에서 MyMethodMyProperty, 상속을 통해 COM 멤버를 실수로 노출 방지할 수 있습니다.By setting ComVisibleAttribute to false on MyClass(SampleClass in the Visual Basic example), and false on MyMethod and MyProperty, you can avoid inadvertently exposing the members to COM through inheritance.

using namespace System::Runtime::InteropServices;

[ComVisible(false)]
ref class MyClass
{
private:
   int myProperty;

public:
   MyClass()
   {
      
      //Insert code here.
   }


   [ComVisible(false)]
   int MyMethod( String^ param )
   {
      return 0;
   }

   bool MyOtherMethod()
   {
      return true;
   }


   property int MyProperty 
   {

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

   }

};

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;
      }
   }
}
Imports System.Runtime.InteropServices

<ComVisible(False)> _
Class SampleClass
    
    Public Sub New()
        'Insert code here.
    End Sub
    
    <ComVisible(False)> _
    Public Function MyMethod(param As String) As Integer
        Return 0
    End Function    
    
    Public Function MyOtherMethod() As Boolean
        Return True
    End Function
    
    <ComVisible(False)> _
    Public ReadOnly Property MyProperty() As Integer
        Get
            Return MyProperty
        End Get
    End Property
    
End Class

설명

어셈블리, 인터페이스, 클래스, 구조체, 대리자, 열거형, 필드, 메서드 또는 속성에이 특성을 적용할 수 있습니다.You can apply this attribute to assemblies, interfaces, classes, structures, delegates, enumerations, fields, methods, or properties.

기본값은 true, 관리 되는 형식을 COM에 표시 되는지 나타내는The default is true, which indicates that the managed type is visible to COM. 공용 관리 되는 어셈블리 및 형식 표시 되도록;이 특성이 필요 하지 않습니다. 기본적으로 COM에 표시 됩니다.This attribute is not needed to make public managed assemblies and types visible; they are visible to COM by default. public 형식을 표시할 수 있습니다.Only public types can be made visible. 특성이 없는 만드는 데 사용할 수 없습니다 internal 또는 protected 형식을 COM에 표시 되지 않는 형식의 멤버를 표시 하도록 표시 합니다.The attribute cannot be used to make an otherwise internal or protected type visible to COM or to make members of a nonvisible type visible.

특성을 설정 false 어셈블리를 모두 숨깁니다 public 어셈블리 내의 형식이 있습니다.Setting the attribute to false on the assembly hides all public types within the assembly. 선택적으로 가능 어셈블리 내의 형식이 표시 개별 형식을 설정 하 여 true입니다.You can selectively make types within the assembly visible by setting the individual types to true. 특성을 설정 false 특정 형식에 해당 형식 및 해당 멤버를 숨깁니다.Setting the attribute to false on a specific type hides that type and its members. 그러나 없습니다 표시 하도록 설정 하면 형식 멤버는 형식이 표시 되지 않는 경우.However, you cannot make members of a type visible if the type is invisible. 특성을 설정 false 에서 형식을 해당 형식을 형식 라이브러리로 내보내는에서 사용할 수 없도록; 클래스가 등록 되지 않고; 인터페이스를 관리 되지 않는 응답 되지 QueryInterface 호출 합니다.Setting the attribute to false on a type prevents that type from being exported to a type library; classes are not registered; interfaces are never responsive to unmanaged QueryInterface calls.

클래스와 해당 멤버를 명시적으로 설정 하지 않으면 false, 상속 된 클래스 원본 클래스에서 표시 되지 않는 기본 클래스 멤버를 COM에 노출할 수 있습니다.Unless you explicitly set a class and its members to false, inherited classes can expose to COM base class members that are invisible in the original class. 예를 들어 ClassA 설정한 false 및 해당 멤버에 특성을 적용 하지 않습니다, 클래스 및 해당 멤버 COM에 표시 되지 않습니다.For example, if you set ClassA to false and do not apply the attribute to its members, the class and its members are invisible to COM. 그러나 ClassA에서 ClassB를 파생 하 고 COM ClassB 내보내려면 ClassA 멤버 ClassB의 표시 기본 클래스 멤버가 됩니다.However, if you derive ClassB from ClassA and export ClassB to COM, ClassA members become visible base class members of ClassB.

내보내기 프로세스에 대 한 자세한 설명을 참조 하세요 어셈블리와 형식 라이브러리 간 변환 요약합니다.For a detailed description of the export process, see Assembly to Type Library Conversion Summary.

생성자

ComVisibleAttribute(Boolean)

ComVisibleAttribute 클래스의 새 인스턴스를 초기화합니다.Initializes a new instance of the ComVisibleAttribute class.

속성

TypeId

파생 클래스에서 구현된 경우 이 Attribute에 대한 고유 식별자를 가져옵니다.When implemented in a derived class, gets a unique identifier for this Attribute.

(다음에서 상속됨 Attribute)
Value

COM 형식이 표시되는지 여부를 나타내는 값을 가져옵니다.Gets a value that indicates whether the COM type is visible.

메서드

Equals(Object)

이 인스턴스가 지정한 개체와 같은지를 나타내는 값을 반환합니다.Returns a value that indicates whether this instance is equal to a specified object.

(다음에서 상속됨 Attribute)
GetHashCode()

이 인스턴스의 해시 코드를 반환합니다.Returns the hash code for this instance.

(다음에서 상속됨 Attribute)
GetType()

현재 인스턴스의 Type을 가져옵니다.Gets the Type of the current instance.

(다음에서 상속됨 Object)
IsDefaultAttribute()

파생 클래스에서 재정의된 경우 이 인스턴스 값이 파생 클래스에 대한 기본값인지 여부를 표시합니다.When overridden in a derived class, indicates whether the value of this instance is the default value for the derived class.

(다음에서 상속됨 Attribute)
Match(Object)

파생 클래스에서 재정의된 경우 이 인스턴스가 지정된 개체와 같은지 여부를 나타내는 값을 반환합니다.When overridden in a derived class, returns a value that indicates whether this instance equals a specified object.

(다음에서 상속됨 Attribute)
MemberwiseClone()

현재 Object의 단순 복사본을 만듭니다.Creates a shallow copy of the current Object.

(다음에서 상속됨 Object)
ToString()

현재 개체를 나타내는 문자열을 반환합니다.Returns a string that represents the current object.

(다음에서 상속됨 Object)

명시적 인터페이스 구현

_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

이름 집합을 해당하는 디스패치 식별자 집합에 매핑합니다.Maps a set of names to a corresponding set of dispatch identifiers.

(다음에서 상속됨 Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

인터페이스의 형식 정보를 가져오는 데 사용할 수 있는 개체의 형식 정보를 검색합니다.Retrieves the type information for an object, which can be used to get the type information for an interface.

(다음에서 상속됨 Attribute)
_Attribute.GetTypeInfoCount(UInt32)

개체에서 제공하는 형식 정보 인터페이스의 수를 검색합니다(0 또는 1).Retrieves the number of type information interfaces that an object provides (either 0 or 1).

(다음에서 상속됨 Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

개체에서 노출하는 메서드와 속성에 대한 액세스를 제공합니다.Provides access to properties and methods exposed by an object.

(다음에서 상속됨 Attribute)

적용 대상

추가 정보