ComVisibleAttribute Sınıf

Tanım

Tek bir yönetilen türün veya üyenin ya da derleme içindeki tüm türlerin COM'a erişilebilirliğini denetler.

public ref class ComVisibleAttribute sealed : Attribute
[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
[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)]
[System.Runtime.InteropServices.ComVisible(true)]
public sealed class ComVisibleAttribute : Attribute
[<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)>]
type ComVisibleAttribute = class
    inherit Attribute
[<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)>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type ComVisibleAttribute = class
    inherit Attribute
Public NotInheritable Class ComVisibleAttribute
Inherits Attribute
Devralma
ComVisibleAttribute
Öznitelikler

Örnekler

Aşağıdaki örnekte, üyeleri görünmez olacak şekilde bir sınıfın COM görünürlüğünü nasıl denetleyebileceğiniz gösterilmektedir. ayarını açık MyClass(Visual Basic örneğinde) ve false üzerinde MyMethod olarak ayarlayarak falseComVisibleAttribute, MyPropertydevralma yoluyla üyeleri yanlışlıkla COM'a maruz bırakmaktan kaçınabilirsinizSampleClass.

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

Açıklamalar

Bu özniteliği derlemelere, arabirimlere, sınıflara, yapılara, temsilcilere, numaralandırmalara, alanlara, yöntemlere veya özelliklere uygulayabilirsiniz.

Varsayılan değer olan true, yönetilen türün COM tarafından görüldüğünü gösterir. Genel yönetilen derlemeleri ve türleri görünür hale getirmek için bu öznitelik gerekli değildir; varsayılan olarak COM tarafından görülebilir. Yalnızca public türler görünür hale getirilebilir. Özniteliği, COM'da başka bir türü internal veya türü görünür yapmak veya protected görünür olmayan bir türün üyelerini görünür hale getirmek için kullanılamaz.

özniteliğinin derlemede olarak false ayarlanması, derleme içindeki tüm public türleri gizler. Tek tek türleri olarak ayarlayarak derleme içindeki türleri trueseçerek görünür hale getirebilirsiniz. Özniteliğin belirli bir tür üzerinde olarak false ayarlanması, bu türü ve üyelerini gizler. Ancak, bir türün üyelerini görünmez olduğunda görünür yapamazsınız. özniteliğinin false bir tür üzerinde olarak ayarlanması, bu türün tür kitaplığına aktarılmasını engeller; sınıflar kaydedilmez; arabirimler hiçbir zaman yönetilmeyen QueryInterface çağrılara yanıt vermez.

Bir sınıfı ve üyelerini açıkça olarak falseolarak ayarlamadığınız sürece, devralınan sınıflar özgün sınıfta görünmeyen COM temel sınıf üyelerini kullanıma sunabilir. Örneğin, ClassA'yı olarak false ayarlarsanız ve özniteliğini üyelerine uygulamazsanız, sınıf ve üyeleri COM'a görünmez. Ancak ClassA'dan ClassB türetip ClassB'yi COM'a aktarırsanız, ClassA üyeleri ClassB'nin görünür temel sınıf üyeleri olur.

Dışarı aktarma işleminin ayrıntılı açıklaması için bkz . Derleme- Tür Kitaplığı Dönüştürme Özeti.

Oluşturucular

ComVisibleAttribute(Boolean)

ComVisibleAttribute sınıfının yeni bir örneğini başlatır.

Özellikler

TypeId

Türetilmiş bir sınıfta uygulandığında, bu Attributeiçin benzersiz bir tanımlayıcı alır.

(Devralındığı yer: Attribute)
Value

COM türünün görünür olup olmadığını gösteren bir değer alır.

Yöntemler

Equals(Object)

Bu örneğin belirtilen bir nesneye eşit olup olmadığını gösteren bir değeri döndürür.

(Devralındığı yer: Attribute)
GetHashCode()

Bu örneğe ilişkin karma kodu döndürür.

(Devralındığı yer: Attribute)
GetType()

Type Geçerli örneğini alır.

(Devralındığı yer: Object)
IsDefaultAttribute()

Türetilmiş bir sınıfta geçersiz kılındığında, bu örneğin değerinin türetilmiş sınıf için varsayılan değer olup olmadığını gösterir.

(Devralındığı yer: Attribute)
Match(Object)

Türetilmiş bir sınıfta geçersiz kılındığında, bu örneğin belirtilen bir nesneye eşit olup olmadığını gösteren bir değer döndürür.

(Devralındığı yer: Attribute)
MemberwiseClone()

Geçerli Objectöğesinin sığ bir kopyasını oluşturur.

(Devralındığı yer: Object)
ToString()

Geçerli nesneyi temsil eden dizeyi döndürür.

(Devralındığı yer: Object)

Belirtik Arabirim Kullanımları

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

Bir ad kümesini karşılık gelen bir dağıtma tanımlayıcısı kümesine eşler.

(Devralındığı yer: Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Bir arabirimin tür bilgilerini almak için kullanılabilecek bir nesnenin tür bilgilerini alır.

(Devralındığı yer: Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Bir nesnenin sağladığı tür bilgisi arabirimlerinin sayısını alır (0 ya da 1).

(Devralındığı yer: Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Bir nesne tarafından sunulan özelliklere ve yöntemlere erişim sağlar.

(Devralındığı yer: Attribute)

Şunlara uygulanır

Ayrıca bkz.