Sdílet prostřednictvím


Ukázka třídy COM (Průvodce programováním v C#)

Následuje příklad třídy, která by vystavit jako objekt COM.Po umístěn v souboru .cs tento kód a přidán do projektu nastavit registrovat pro volání Interop modelu COM vlastnost True.Další informace naleznete v tématu How to: Register a Component for COM Interop.

Vystavuje Visual C# objekty COM vyžaduje deklarování třídy rozhraní, pokud je vyžadováno rozhraní události a samotné třídy.Členy třídy postupujte podle těchto pravidel, které mají být zobrazeny na COM:

  • Třída musí být veřejné.

  • Vlastnosti, metody a události musí být veřejné.

  • Vlastnosti a metody musí být deklarován na rozhraní třídy.

  • Události musí být deklarován událostí rozhraní.

Ostatní veřejné členy třídy, které nejsou deklarovány v těchto rozhraní nemusí být viditelné pro COM, ale bude viditelný pro ostatní.NET Framework objekty.

Chcete-li zobrazit vlastnosti a metody COM, musíte deklarovat na rozhraní třídy a označovat DispId atributů a jejich implementaci třídy.Pořadí, ve kterém jsou členy deklarována v rozhraní je pro virtuální COM tabulka objednávky.

Chcete-li zobrazit události z vaší třídy, musíte deklarovat na rozhraní události a označovat DispId atributu.Třída by neměly implementovat rozhraní.

Třída implementuje rozhraní třídy; jej lze implementovat více než jedno rozhraní, ale první provádění bude výchozí třídy rozhraní.Implementujte metody a vlastnosti, které jsou zde vystaveny COM.Tyto musí být označeny a musí odpovídat prohlášení v rozhraní třídy.Události vzniklé třídy zde také Deklarujte.Tyto musí být označeny a musí odpovídat prohlášení v rozhraní události.

Příklad

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

Viz také

Referenční dokumentace

Interoperabilita (Průvodce programováním v C#)

Stránka Sestavení, návrhář projektu (C#)

Koncepty

Průvodce programováním v C#