ComVisibleAttribute ComVisibleAttribute ComVisibleAttribute ComVisibleAttribute Class

Definicja

Kontroluje dostępność pojedynczego typu zarządzanego lub elementu członkowskiego lub wszystkich typów w zestawie, do modelu 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
Dziedziczenie
ComVisibleAttributeComVisibleAttributeComVisibleAttributeComVisibleAttribute
Atrybuty

Przykłady

Poniższy przykład pokazuje, jak można kontrolować widoczność modelu COM klasy tak, aby jej elementy członkowskie były niewidoczne.The following example shows how you can control the visibility to COM of a class so that its members are invisible. ComVisibleAttribute Ustawienie MyProperty MyMethod false na wartość MyClasswłączone(SampleClass w Visual Basic przykładzie), a w systemach i pozwala uniknąć przypadkowego uwidocznienia członków w modelu COM przez dziedziczenie. falseBy 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

Uwagi

Ten atrybut można zastosować do zestawów, interfejsów, klas, struktur, delegatów, wyliczeń, pól, metod lub właściwości.You can apply this attribute to assemblies, interfaces, classes, structures, delegates, enumerations, fields, methods, or properties.

Wartość domyślna to true, co oznacza, że typ zarządzany jest widoczny dla modelu com.The default is true, which indicates that the managed type is visible to COM. Ten atrybut nie jest wymagany, aby publiczne zestawy zarządzane i typy były widoczne; Domyślnie są one widoczne dla modelu COM.This attribute is not needed to make public managed assemblies and types visible; they are visible to COM by default. Tylko public typy mogą być widoczne.Only public types can be made visible. Nie można użyć atrybutu, aby uczynić innym internal lub protected typem widocznym dla modelu COM lub uczynić elementy członkowskie niewidocznego typu widoczny.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.

Ustawienie atrybutu false na w zestawie powoduje ukrycie wszystkich public typów w zestawie.Setting the attribute to false on the assembly hides all public types within the assembly. Można wybiórczo tworzyć typy w zestawie, ustawiając poszczególne typy na true.You can selectively make types within the assembly visible by setting the individual types to true. Ustawienie atrybutu false na określony typ ukrywa ten typ i jego elementy członkowskie.Setting the attribute to false on a specific type hides that type and its members. Nie można jednak sprawić, aby elementy członkowskie typu były widoczne, jeśli typ jest niewidoczny.However, you cannot make members of a type visible if the type is invisible. Ustawienie atrybutu false na typ uniemożliwia wyeksportowanie tego typu do biblioteki typów; klasy nie są zarejestrowane; interfejsy nigdy nie odpowiadają na wywołania niezarządzane 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.

Chyba że jawnie ustawisz klasę i jej składowe falsena, dziedziczone klasy mogą uwidocznić składowe klasy bazowej com, które są niewidoczne w oryginalnej klasie.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. Na przykład jeśli ustawisz ClassA na false i nie zastosujesz atrybutu do swoich elementów członkowskich, Klasa i jej elementy członkowskie są niewidoczne dla modelu 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. Jeśli jednak ClassB pochodzą z ClassA i eksportu ClassB do modelu COM, członkowie ClassA stają się widocznymi elementami członkowskimi klasy bazowej elementu ClassB.However, if you derive ClassB from ClassA and export ClassB to COM, ClassA members become visible base class members of ClassB.

Aby uzyskać szczegółowy opis procesu eksportowania, zobacz Podsumowanie konwersji zestawu na bibliotekę typów.For a detailed description of the export process, see Assembly to Type Library Conversion Summary.

Konstruktory

ComVisibleAttribute(Boolean) ComVisibleAttribute(Boolean) ComVisibleAttribute(Boolean) ComVisibleAttribute(Boolean)

Inicjuje nowe wystąpienie klasy ComVisibleAttribute klasy.Initializes a new instance of the ComVisibleAttribute class.

Właściwości

TypeId TypeId TypeId TypeId

Po zaimplementowaniu w klasie pochodnej pobiera unikatowy identyfikator dla tego Attributeelementu.When implemented in a derived class, gets a unique identifier for this Attribute.

(Inherited from Attribute)
Value Value Value Value

Pobiera wartość wskazującą, czy typ COM jest widoczny.Gets a value that indicates whether the COM type is visible.

Metody

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

Zwraca wartość wskazującą, czy to wystąpienie jest równe podanemu obiektowi.Returns a value that indicates whether this instance is equal to a specified object.

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

Zwraca kod skrótu dla tego wystąpienia.Returns the hash code for this instance.

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

Type Pobiera bieżące wystąpienie.Gets the Type of the current instance.

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

Gdy jest zastępowany w klasie pochodnej, wskazuje, czy wartość tego wystąpienia jest wartością domyślną klasy pochodnej.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)

Gdy jest zastępowany w klasie pochodnej, zwraca wartość wskazującą, czy to wystąpienie jest zgodne z określonym obiektem.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()

Tworzy skróconą kopię bieżącego Objectelementu.Creates a shallow copy of the current Object.

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

Zwraca ciąg, który reprezentuje bieżący obiekt.Returns a string that represents the current object.

(Inherited from Object)

Jawne implementacje interfejsu

_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)

Zestaw nazw jest mapowany na odpowiedni zestaw identyfikatorów wysyłania.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)

Pobiera informacje o typie dla obiektu, którego można użyć do uzyskania informacji o typie dla interfejsu.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)

Pobiera informację o liczbie typów interfejsów, jakie zawiera obiekt (0 lub 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)

Umożliwia dostęp do właściwości i metod udostępnianych przez obiekt.Provides access to properties and methods exposed by an object.

(Inherited from Attribute)

Dotyczy

Zobacz też