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#)