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, üyelerinin görünmez olması için 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 MyPropertyMyMethod olarak ayarlayarak ComVisibleAttributefalse, devralma yoluyla üyeleri yanlışlıkla COM'a göstermekten 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, olay erişimcilerine veya özelliklere uygulayabilirsiniz.

Varsayılan değer, trueyönetilen türün COM'a görünür olduğunu gösteren değeridir. Bu öznitelik, genel yönetilen derlemeleri ve türleri görünür hale getirmek için gerekli değildir; varsayılan olarak COM'a görünürler. Yalnızca public türler görünür hale getirilebilir. Özniteliği, COM'da başka bir türün internal veya protected türün görünür olmasını sağlamak veya görünür olmayan bir türün üyelerini görünür yapmak 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çmeli olarak görünür hale getirebilirsiniz. özniteliğinin belirli bir türde 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üre ayarlanması, bu türün bir tür kitaplığına dışarı 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 için görünmez. Ancak ClassB'yi ClassA'dan 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. Derlemeden Tür Kitaplığı Dönüştürme Özeti'ne.

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.