ComVisibleAttribute ComVisibleAttribute ComVisibleAttribute ComVisibleAttribute Class

定義

個々のマネージド型またはマネージド メンバーから COM への、またはアセンブリ内のすべての型から 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. 設定してComVisibleAttributefalseMyClass(SampleClass Visual Basic の例で)、およびfalseMyMethodMyProperty、誤って継承によってメンバーを 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 を派生し、ClassB を COM にエクスポートする場合は、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(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)

適用対象

こちらもご覧ください