Freigeben über


IDispatchImplAttribute-Klasse

HINWEIS: Diese Klasse ist mittlerweile veraltet.

Gibt an, welche IDispatch-Implementierung die Common Language Runtime verwendet, um duale Schnittstellen oder Dispatchschnittstellen für COM verfügbar zu machen.

Namespace: System.Runtime.InteropServices
Assembly: mscorlib (in mscorlib.dll)

Syntax

'Declaration
<ComVisibleAttribute(True)> _
<AttributeUsageAttribute(AttributeTargets.Assembly Or AttributeTargets.Class, Inherited:=False)> _
<ObsoleteAttribute("This attribute is deprecated and will be removed in a future version.", False)> _
Public NotInheritable Class IDispatchImplAttribute
    Inherits Attribute
'Usage
Dim instance As IDispatchImplAttribute
[ComVisibleAttribute(true)] 
[AttributeUsageAttribute(AttributeTargets.Assembly|AttributeTargets.Class, Inherited=false)] 
[ObsoleteAttribute("This attribute is deprecated and will be removed in a future version.", false)] 
public sealed class IDispatchImplAttribute : Attribute
[ComVisibleAttribute(true)] 
[AttributeUsageAttribute(AttributeTargets::Assembly|AttributeTargets::Class, Inherited=false)] 
[ObsoleteAttribute(L"This attribute is deprecated and will be removed in a future version.", false)] 
public ref class IDispatchImplAttribute sealed : public Attribute
/** @attribute ComVisibleAttribute(true) */ 
/** @attribute AttributeUsageAttribute(AttributeTargets.Assembly|AttributeTargets.Class, Inherited=false) */ 
/** @attribute ObsoleteAttribute("This attribute is deprecated and will be removed in a future version.", false) */ 
public final class IDispatchImplAttribute extends Attribute
ComVisibleAttribute(true) 
AttributeUsageAttribute(AttributeTargets.Assembly|AttributeTargets.Class, Inherited=false) 
ObsoleteAttribute("This attribute is deprecated and will be removed in a future version.", false) 
public final class IDispatchImplAttribute extends Attribute

Hinweise

Dieses Attribut kann auf Klassen oder Assemblys angewendet werden.

Legen Sie dieses Attribut nur fest, wenn eine explizite Implementierung erforderlich ist. Wenn das Attribut auf CompatibleImpl festgelegt wird, erfolgt die Bereitstellung der IDispatch-Implementierung durch Übergabe der Typinformationen für das Objekt an die CreateStdDispatch-API von COM. Wenn das Attribut auf InternalImpl festgelegt wird, erfolgt die Bereitstellung der IDispatch-Implementierung durch die Common Language Runtime. Durch Festlegen des Attributs auf SystemDefinedImpl kann die Laufzeit die entsprechende Implementierung auswählen. Wenn das Attribut auf eine Assembly angewendet wird, gilt es für alle innerhalb der Assembly definierten Klassen. Wenn das Attribut auf eine einzelne Klasse angewendet wird, gilt es nur für die von dieser Klasse verfügbar gemachten Schnittstellen und überschreibt alle für die entsprechende Assembly angegebenen Einstellungen.

Beispiel

Im folgenden Beispiel wird die Anwendung von IDispatchImplAttribute veranschaulicht, um die von der Common Language Runtime bereitgestellte IDispatch-Implementierung auszuwählen.

Imports System
Imports System.Runtime.InteropServices
' by default all classes in this assembly will use COM implementaion 
<Assembly: IDispatchImpl(IDispatchImplType.CompatibleImpl)> 

Module MyNamespace
    ' But this class will use runtime implementaion
    <IDispatchImpl(IDispatchImplType.InternalImpl)> _
    Public Class c
        '
    End Class

End Module
using System;
using System.Runtime.InteropServices;
// by default all classes in this assembly will use COM implementaion 
[assembly:IDispatchImpl(IDispatchImplType.CompatibleImpl)]

namespace MyNamespace
{
    // But this class will use runtime implementaion
    [IDispatchImpl(IDispatchImplType.InternalImpl)]
    class MyClass
    {
        //
    }
}
using namespace System;
using namespace System::Runtime::InteropServices;

// by default all classes in this assembly will use COM implementaion
//   // But this class will use runtime implementaion

[assembly:IDispatchImpl(IDispatchImplType::CompatibleImpl)];
[IDispatchImpl(IDispatchImplType::InternalImpl)]
ref class MyClass{};
import System.*;
import System.Runtime.InteropServices.*;

// by default all classes in this assembly will use COM implementaion 
/** @assembly IDispatchImpl(IDispatchImplType.CompatibleImpl)
 */
// But this class will use runtime implementaion
/** @attribute IDispatchImpl(IDispatchImplType.InternalImpl)
 */
   class MyClass
   {
       //
   } //MyClass

Vererbungshierarchie

System.Object
   System.Attribute
    System.Runtime.InteropServices.IDispatchImplAttribute

Threadsicherheit

Alle öffentlichen statischen (Shared in Visual Basic) Member dieses Typs sind threadsicher. Bei Instanzmembern ist die Threadsicherheit nicht gewährleistet.

Plattformen

Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.

Versionsinformationen

.NET Framework

Unterstützt in: 1.0, 1.1
Veraltet (Compilerwarnung) in 2.0

Siehe auch

Referenz

IDispatchImplAttribute-Member
System.Runtime.InteropServices-Namespace
IDispatchImplType