ComVisibleAttribute ComVisibleAttribute ComVisibleAttribute ComVisibleAttribute Class

Определение

Управляет доступностью отдельного управляемого типа или члена либо всех типов в сборки для модели 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.AttributeUsage(System.AttributeTargets.Assembly | System.AttributeTargets.Class | System.AttributeTargets.Struct | System.AttributeTargets.Enum | System.AttributeTargets.Method | System.AttributeTargets.Property | System.AttributeTargets.Field | System.AttributeTargets.Interface | System.AttributeTargets.Delegate, Inherited=false)]
[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
Наследование
ComVisibleAttributeComVisibleAttributeComVisibleAttributeComVisibleAttribute
Атрибуты

Примеры

Следующий пример показывает, как можно управлять доступностью для COM класса, чтобы его члены невидимы.The following example shows how you can control the visibility to COM of a class so that its members are invisible. Установив ComVisibleAttribute для false на MyClass(SampleClass в примере Visual Basic), и false на MyMethod и MyProperty, можно избежать случайного предоставления членов 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. Например, если задано значение 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. Тем не менее если производный от класса а и экспортируется в COM, то члены становятся доступными членами базового класса для класса б.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(Boolean) ComVisibleAttribute(Boolean) ComVisibleAttribute(Boolean)

Инициализирует новый экземпляр класса ComVisibleAttribute.Initializes a new instance of the ComVisibleAttribute class.

Свойства

TypeId TypeId TypeId TypeId

При реализации в производном классе возвращает уникальный идентификатор для этого Attribute.When implemented in a derived class, gets a unique identifier for this Attribute.

(Inherited from Attribute)
Value Value Value Value

Возвращает значение, указывающее, видим ли данный тип для COM.Gets a value that indicates whether the COM type is visible.

Методы

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

Возвращает значение, указывающее, равен ли этот экземпляр указанному объекту.Returns a value that indicates whether this instance is equal to a specified object.

(Inherited from Attribute)
GetHashCode() GetHashCode() GetHashCode() GetHashCode()

Возвращает хэш-код для данного экземпляра.Returns the hash code for this instance.

(Inherited from Attribute)
GetType() GetType() GetType() GetType()

Возвращает объект Type для текущего экземпляра.Gets the Type of the current instance.

(Inherited from Object)
IsDefaultAttribute() IsDefaultAttribute() IsDefaultAttribute() IsDefaultAttribute()

При переопределении в производном классе показывает, является ли значение данного экземпляра значением по умолчанию для производного класса.When overridden in a derived class, indicates whether the value of this instance is the default value for the derived class.

(Inherited from Attribute)
Match(Object) Match(Object) Match(Object) Match(Object)

При переопределении в производном классе возвращает значение, указывающее, является ли этот экземпляр равным заданному объекту.When overridden in a derived class, returns a value that indicates whether this instance equals a specified object.

(Inherited from Attribute)
MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

Создает неполную копию текущего объекта Object.Creates a shallow copy of the current Object.

(Inherited from Object)
ToString() ToString() ToString() ToString()

Возвращает строку, представляющую текущий объект.Returns a string that represents the current object.

(Inherited from Object)

Явные реализации интерфейса

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

Сопоставляет набор имен соответствующему набору идентификаторов диспетчеризации.Maps a set of names to a corresponding set of dispatch identifiers.

(Inherited from Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) _Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) _Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) _Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Возвращает сведения о типе объекта, которые могут использоваться для получения сведений о типе интерфейса.Retrieves the type information for an object, which can be used to get the type information for an interface.

(Inherited from Attribute)
_Attribute.GetTypeInfoCount(UInt32) _Attribute.GetTypeInfoCount(UInt32) _Attribute.GetTypeInfoCount(UInt32) _Attribute.GetTypeInfoCount(UInt32)

Возвращает количество предоставляемых объектом интерфейсов для доступа к сведениям о типе (0 или 1).Retrieves the number of type information interfaces that an object provides (either 0 or 1).

(Inherited from Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) _Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) _Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) _Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Предоставляет доступ к открытым свойствам и методам объекта.Provides access to properties and methods exposed by an object.

(Inherited from Attribute)

Применяется к

Дополнительно