Exemplo classe COM (guia de programação translation from VPE for Csharp)

A seguir é um exemplo de uma classe exporia sistema autônomo um objeto COM.Após esse código foi colocado em um arquivo .cs e adicionado ao seu projeto, defina o Registrar para interoperabilidade com. propriedade True.Para obter mais informações, consulte Como: Registrar um componente para interoperabilidade com..

Expor objetos translation from VPE for Csharp Visual COM requer declarando uma interface de classe, uma interface de eventos se for necessário e a própria classe.Membros de classe devem seguir essas regras fiquem visíveis COM:

  • A classe deve ser pública.

  • Propriedades, métodos e eventos devem ser públicos.

  • Propriedades e métodos devem ser declarados na interface de classe.

  • Eventos devem ser declarados em evento interface.

Outros membros públicos na classe que não sejam declarados nessas interfaces não será visíveis para com., mas eles estarão visíveis a outros objetos do .NET estrutura.

Para expor propriedades e métodos para COM, você deve declará-los na interface de classe e marcá-las com um DispId atributo e implementá-los na classe. A ordem em que os membros são declarados na interface é a ordem usada para vtable COM.

Para expor eventos de sua classe, você deve declará-los na interface de eventos e marcá-las com um DispId atributo. A classe não deve implementar essa interface.

A classe implementa a interface de classe; ela pode implementar mais de uma interface, mas a primeira implementação será a interface de classe padrão.Implemente os métodos e propriedades expostas a COM aqui.Eles devem ser marcado como públicos e devem coincidir com as declarações na interface de classe.Além disso, declare os eventos gerados pela classe aqui.Eles devem ser marcado como públicos e devem coincidir com as declarações na interface de eventos.

Para obter mais informações, consulte Exemplo de interoperabilidade parte 1 de COM, Exemplo de interoperabilidade parte 2 de COM e Exemplos de interoperabilidade de COM.

Exemplo

using System.Runtime.InteropServices;

namespace project_name
{
    [Guid("EAA4976A-45C3-4BC5-BC0B-E474F4C3C83F")]
    public interface ComClass1Interface
    {
    }

    [Guid("7BD20046-DF8C-44A6-8F6B-687FAA26FA71"), 
        InterfaceType(ComInterfaceType.InterfaceIsIDispatch)]
    public interface ComClass1Events 
    {
    }

    [Guid("0D53A3E8-E51A-49C7-944E-E72A2064F938"),
        ClassInterface(ClassInterfaceType.None),
        ComSourceInterfaces(typeof(ComClass1Events))]
    public class ComClass1 : ComClass1Interface
    {
    }
}

Consulte também

Conceitos

Guia de Programação C#

Referência

Interoperabilidade (guia de programação C#)

Compilação de página, Designer de projeto c (#)