Compartilhar via


Classe IDispatchImplAttribute

 

Dica

The .NET API Reference documentation has a new home. Visit the .NET API Browser on docs.microsoft.com to see the new experience.

Observação: Esta API agora está obsoleta.

Indica qual implementação de IDispatch o Common Language Runtime usa ao expor interfaces duplas e dispinterfaces ao COM.

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

Hierarquia de Herança

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

Sintaxe

[AttributeUsageAttribute(AttributeTargets.Assembly | AttributeTargets.Class, 
    Inherited = false)]
[ObsoleteAttribute("This attribute is deprecated and will be removed in a future version.", 
    false)]
[ComVisibleAttribute(true)]
public sealed class IDispatchImplAttribute : Attribute
[AttributeUsageAttribute(AttributeTargets::Assembly | AttributeTargets::Class, 
    Inherited = false)]
[ObsoleteAttribute("This attribute is deprecated and will be removed in a future version.", 
    false)]
[ComVisibleAttribute(true)]
public ref class IDispatchImplAttribute sealed : Attribute
[<Sealed>]
[<AttributeUsageAttribute(AttributeTargets.Assembly | AttributeTargets.Class,
    Inherited = false)>]
[<ObsoleteAttribute("This attribute is deprecated and will be removed in a future version.",
    false)>]
[<ComVisibleAttribute(true)>]
type IDispatchImplAttribute = 
    class
        inherit Attribute
    end
<AttributeUsageAttribute(AttributeTargets.Assembly Or AttributeTargets.Class,
    Inherited := False)>
<ObsoleteAttribute("This attribute is deprecated and will be removed in a future version.",
    False)>
<ComVisibleAttribute(True)>
Public NotInheritable Class IDispatchImplAttribute
    Inherits Attribute

Construtores

Nome Descrição
System_CAPS_pubmethod IDispatchImplAttribute(IDispatchImplType)

Inicializa uma nova instância da classe IDispatchImplAttribute com o valor IDispatchImplType especificado.

System_CAPS_pubmethod IDispatchImplAttribute(Int16)

Inicializa uma nova instância da classe IDispatchImplAttribute com o valor IDispatchImplType especificado.

Propriedades

Nome Descrição
System_CAPS_pubproperty TypeId

Quando implementado em uma classe derivada, obtém um identificador exclusivo para este Attribute.(Herdado de Attribute.)

System_CAPS_pubproperty Value

Obtém o valor IDispatchImplType usado pela classe.

Métodos

Nome Descrição
System_CAPS_pubmethod Equals(Object)

Esta API dá suporte à infraestrutura produto e não se destina a ser usada diretamente do seu código. Retorna um valor que indica se essa instância é igual a um objeto especificado.(Herdado de Attribute.)

System_CAPS_pubmethod GetHashCode()

Retorna o código hash para essa instância.(Herdado de Attribute.)

System_CAPS_pubmethod GetType()

Obtém o Type da instância atual.(Herdado de Object.)

System_CAPS_pubmethod IsDefaultAttribute()

Quando substituído em uma classe derivada, indica se o valor dessa instância é o valor padrão para a classe derivada.(Herdado de Attribute.)

System_CAPS_pubmethod Match(Object)

Quando substituído em uma classe derivada, retorna um valor que indica se essa instância é igual a um objeto especificado.(Herdado de Attribute.)

System_CAPS_pubmethod ToString()

Retorna uma cadeia de caracteres que representa o objeto atual.(Herdado de Object.)

Implementações Explícitas da Interface

Nome Descrição
System_CAPS_pubinterfaceSystem_CAPS_privmethod _Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

Mapeia um conjunto de nomes para um conjunto correspondente de identificadores de expedição.(Herdado de Attribute.)

System_CAPS_pubinterfaceSystem_CAPS_privmethod _Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Recupera as informações de tipo para um objeto, que pode ser usado para obter as informações de tipo para uma interface.(Herdado de Attribute.)

System_CAPS_pubinterfaceSystem_CAPS_privmethod _Attribute.GetTypeInfoCount(UInt32)

Retorna o número de interfaces de informações do tipo que um objeto fornece (0 ou 1).(Herdado de Attribute.)

System_CAPS_pubinterfaceSystem_CAPS_privmethod _Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Fornece acesso a propriedades e métodos expostos por um objeto.(Herdado de Attribute.)

Comentários

Você pode aplicar esse atributo para classes ou assemblies.

Esse atributo deve ser definido somente quando uma implementação explícita é necessária. Quando você definir o atributo CompatibleImpl, o IDispatch implementação for fornecida, passando as informações de tipo para o objeto para COM CreateStdDispatch API. Quando você definir o atributo InternalImpl, o IDispatch implementação é fornecida pelo common language runtime. Definindo o atributo para SystemDefinedImpl permite que o tempo de execução escolher a implementação apropriada. Ao usar o atributo em um assembly, o atributo se aplica a todas as classes definidas dentro do assembly. Ao usar o atributo em uma classe individual, o atributo se aplica apenas às interfaces expostas pela classe e substitui qualquer configuração de nível de assembly.

Exemplos

O exemplo a seguir demonstra como aplicar IDispatchImplAttribute para selecionar o IDispatch implementação fornecida pelo common language runtime.

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

Informações de Versão

.NET Framework
Disponível desde 1.1

Acesso thread-safe

Quaisquer membros estáticos públicos ( Compartilhado no Visual Basic) desse tipo são thread-safe. Não há garantia de que qualquer membro de instância seja thread-safe.

Confira Também

IDispatchImplType
Namespace System.Runtime.InteropServices

Retornar ao início