ComVisibleAttribute クラスとは? わかりやすく解説

ComVisibleAttribute クラス

個々マネージ型またはマネージ メンバ、またはアセンブリ内のすべての型の COM 参照可能範囲制御します

名前空間: System.Runtime.InteropServices
アセンブリ: mscorlib (mscorlib.dll 内)
構文構文

<AttributeUsageAttribute(AttributeTargets.Assembly Or AttributeTargets.Class
 Or AttributeTargets.Struct Or AttributeTargets.Enum
 Or AttributeTargets.Method Or AttributeTargets.Property Or AttributeTargets.Field Or AttributeTargets.Interface
 Or AttributeTargets.Delegate, Inherited:=False)> _
<ComVisibleAttribute(True)> _
Public NotInheritable Class
 ComVisibleAttribute
    Inherits Attribute
Dim instance As ComVisibleAttribute
[AttributeUsageAttribute(AttributeTargets.Assembly|AttributeTargets.Class|AttributeTargets.Struct|AttributeTargets.Enum|AttributeTargets.Method|AttributeTargets.Property|AttributeTargets.Field|AttributeTargets.Interface|AttributeTargets.Delegate,
 Inherited=false)] 
[ComVisibleAttribute(true)] 
public sealed class ComVisibleAttribute : Attribute
[AttributeUsageAttribute(AttributeTargets::Assembly|AttributeTargets::Class|AttributeTargets::Struct|AttributeTargets::Enum|AttributeTargets::Method|AttributeTargets::Property|AttributeTargets::Field|AttributeTargets::Interface|AttributeTargets::Delegate,
 Inherited=false)] 
[ComVisibleAttribute(true)] 
public ref class ComVisibleAttribute sealed
 : public Attribute
/** @attribute AttributeUsageAttribute(AttributeTargets.Assembly|AttributeTargets.Class|AttributeTargets.Struct|AttributeTargets.Enum|AttributeTargets.Method|AttributeTargets.Property|AttributeTargets.Field|AttributeTargets.Interface|AttributeTargets.Delegate,
 Inherited=false) */ 
/** @attribute ComVisibleAttribute(true) */ 
public final class ComVisibleAttribute extends
 Attribute
AttributeUsageAttribute(AttributeTargets.Assembly|AttributeTargets.Class|AttributeTargets.Struct|AttributeTargets.Enum|AttributeTargets.Method|AttributeTargets.Property|AttributeTargets.Field|AttributeTargets.Interface|AttributeTargets.Delegate,
 Inherited=false) 
ComVisibleAttribute(true) 
public final class ComVisibleAttribute extends
 Attribute
解説解説

この属性は、アセンブリインターフェイスクラス構造体デリゲート列挙体、フィールドメソッド、またはプロパティ適用できます

既定値true です。これは、マネージ型が COM から参照できることを示します。この属性は、パブリック マネージ アセンブリパブリック マネージ型を参照可能にする場合には必要ありません。これらは、既定COM から参照できます参照可能にできるのは public 型だけです。この属性使用してinternal 型または protected 型を COM から参照可能にしたり、参照不可能な型のメンバ参照可能にしたりすることはできません。

アセンブリに対してこの属性false設定すると、そのアセンブリ内のすべての public 型を参照できなくなりますアセンブリ内の型を個別参照可能にするには、個々の型に対して true設定します特定のに対してこの属性false設定すると、その型とメンバ参照できなくなります。ただし、参照不可能な型のメンバ参照可能にすることはできません。この属性false設定された型は、タイプ ライブラリエクスポートできません。また、クラス場合は登録できなくなりますインターフェイス場合は、アンマネージの QueryInterface呼び出しに対して応答しなくなります

クラスおよびそのメンバ明示的に false設定されていない限り継承したクラスでは、元のクラス参照不可能だった基本クラスメンバCOM公開できます。たとえば、ClassA を false設定し、そのメンバにはこの属性適用しなかった場合、ClassA とそのメンバCOM参照することはできません。しかし、ClassA から継承して ClassB を作成し、ClassB を COMエクスポートすると、ClassA のメンバは、ClassB の基本クラスメンバとして参照可能になります

エクスポート プロセス詳細については、「アセンブリからタイプ ライブラリへの変換要約」を参照してください

使用例使用例

COM対すクラス参照可能範囲制御して、そのメンバ参照不可能にする方法次の例に示しますMyClass では ComVisibleAttributefalse設定しMyMethodMyProperty では false設定することにより、継承通じて意図せずメンバCOM公開されることを防ぐことができます

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
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;
      }
   }
}
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;
      }

   }

};

import System.Runtime.InteropServices.*;

/** @attribute ComVisible(false)
 */
class MyClass
{
    public MyClass()
    {
        //Insert code here.
    } //MyClass
   
    /** @attribute ComVisible(false)
     */
    public int MyMethod(String param)
    {
        return 0;
    } //MyMethod

    public boolean MyOtherMethod()
    {
        return true;
    } //MyOtherMethod

    /** @attribute ComVisible(false)
     */
    /** @property 
     */
    public int get_MyProperty()
    {
        return get_MyProperty();
    }//get_MyProperty
} //MyClass
import System.Runtime.InteropServices;

ComVisible(false) class MyClass
{
   public function MyClass()
   {
      //Insert code here.
   }
   
   ComVisible(false) public function
 MyMethod(param : String) : int 
   {
      return 0;
   }

   public function MyOtherMethod() : boolean
   {
      return true;
   }

   ComVisible(false) public function
 get MyProperty() : int 
   {
       return MyProperty;
   }
}
継承階層継承階層
System.Object
   System.Attribute
    System.Runtime.InteropServices.ComVisibleAttribute
スレッド セーフスレッド セーフ
この型の public static (Visual Basic では Shared) メンバはすべて、スレッド セーフです。インスタンス メンバ場合は、スレッド セーフであるとは限りません。
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照
関連項目
ComVisibleAttribute メンバ
System.Runtime.InteropServices 名前空間
その他の技術情報
タイプ ライブラリ エクスポータ (Tlbexp.exe)
アセンブリからタイプ ライブラリへの変換要約



英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「ComVisibleAttribute クラス」の関連用語

ComVisibleAttribute クラスのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



ComVisibleAttribute クラスのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
日本マイクロソフト株式会社日本マイクロソフト株式会社
© 2025 Microsoft.All rights reserved.

©2025 GRAS Group, Inc.RSS