CA1412: Označte rozhraní ComSource jako IDispatch
Zboží | Hodnota |
---|---|
RuleId | CA1412 |
Kategorie | Microsoft.Interoperability |
Změna způsobující chybu | Narušující |
Příčina
Typ je označen atributem ComSourceInterfacesAttribute a nejméně jedno zadané rozhraní není označeno atributem InterfaceTypeAttribute nastaveným InterfaceIsDispatch
na hodnotu.
Popis pravidla
ComSourceInterfacesAttribute slouží k identifikaci rozhraní událostí, která třída zveřejňuje klientům modelu COM (Component Object Model). Tato rozhraní musí být zpřístupněna, aby InterfaceIsIDispatch
klienti modelu COM jazyka Visual Basic 6 dostávali oznámení o událostech. Pokud rozhraní není označeno atributem InterfaceTypeAttribute , je ve výchozím nastavení vystaveno jako duální rozhraní.
Jak opravit porušení
Chcete-li opravit porušení tohoto pravidla, přidejte nebo upravte InterfaceTypeAttribute atribut tak, aby jeho hodnota byla nastavena na InterfaceIsIDispatch pro všechna rozhraní, která jsou zadána s atributem ComSourceInterfacesAttribute .
Kdy potlačit upozornění
Nepotlačujte upozornění na toto pravidlo.
Příklad
Následující příklad ukazuje třídu, kde jedno z rozhraní porušuje pravidlo.
using System;
using System.Runtime.InteropServices;
[assembly: ComVisible(true)]
namespace InteroperabilityLibrary
{
// This violates the rule for type EventSource.
[InterfaceType(ComInterfaceType.InterfaceIsDual)]
public interface IEventsInterface
{
void EventOne();
void EventTwo();
}
// This satisfies the rule.
[InterfaceType(ComInterfaceType.InterfaceIsIDispatch)]
public interface IMoreEventsInterface
{
void EventThree();
void EventFour();
}
[ComSourceInterfaces(
"InteroperabilityLibrary.IEventsInterface\0" +
"InteroperabilityLibrary.IMoreEventsInterface")]
public class EventSource
{
// Event and method declarations.
}
}
Související pravidla
CA1408: Nepoužívejte AutoDual ClassInterfaceType
Viz také
Váš názor
https://aka.ms/ContentUserFeedback.
Připravujeme: V průběhu roku 2024 budeme postupně vyřazovat problémy z GitHub coby mechanismus zpětné vazby pro obsah a nahrazovat ho novým systémem zpětné vazby. Další informace naleznete v tématu:Odeslat a zobrazit názory pro