CA1412: Contrassegnare le interfacce ComSource come IDispatch
Articolo | Valore |
---|---|
ID regola | CA1412 |
Category | Microsoft.Interoperability |
Modifica | Interruzione |
Causa
Un tipo è contrassegnato con l'attributo ComSourceInterfacesAttribute e almeno un'interfaccia specificata non è contrassegnata con l'attributo InterfaceTypeAttribute impostato sul InterfaceIsDispatch
valore.
Descrizione regola
ComSourceInterfacesAttribute viene usato per identificare le interfacce evento esposte da una classe ai client COM (Component Object Model). Queste interfacce devono essere esposte per InterfaceIsIDispatch
consentire ai client COM di Visual Basic 6 di ricevere notifiche degli eventi. Per impostazione predefinita, se un'interfaccia non è contrassegnata con l'attributo InterfaceTypeAttribute , viene esposta come interfaccia doppia.
Come correggere le violazioni
Per correggere una violazione di questa regola, aggiungere o modificare l'attributo InterfaceTypeAttribute in modo che il relativo valore sia impostato su InterfaceIsIDispatch per tutte le interfacce specificate con l'attributo ComSourceInterfacesAttribute .
Quando eliminare gli avvisi
Non escludere un avviso da questa regola.
Esempio
L'esempio seguente mostra una classe in cui una delle interfacce viola la regola.
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.
}
}
Regole correlate
CA1408: Non usare AutoDual ClassInterfaceType
Vedi anche
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per