Condividi tramite


CA1059: I membri non devono esporre tipi concreti specifici

TypeName

MembersShouldNotExposeCertainConcreteTypes

CheckId

CA1059

Category

Microsoft.Design

Breaking Change

Breaking

Causa

Un membro visibile esternamente è un tipo concreto specifico oppure espone tipi concreti specifici attraverso uno dei relativi parametri o valori restituiti. Attualmente questa regola indica l'esposizione dei seguenti tipi concreti:

Descrizione della regola

Un tipo concreto è un tipo con implementazione completa, pertanto è possibile crearne un'istanza. Per consentire l'utilizzo diffuso del membro, sostituire il tipo concreto con l'interfaccia suggerita. In tal modo il membro può accettare qualsiasi tipo che implementa l'interfaccia o essere utilizzato dove è previsto un tipo che implementa l'interfaccia.

Nella tabella riportata di seguito sono elencati i tipi concreti di destinazione e le relative sostituzioni consigliate.

Tipo concreto

Replacement

XPathDocument

System.Xml.XPath.IXPathNavigable.

Utilizzando l'istanza è possibile separare il membro da un'implementazione specifica di un'origine dati XML.

Come correggere le violazioni

Per correggere una violazione di questa regola, modificare il tipo concreto nell'interfaccia consigliata.

Esclusione di avvisi

Si consiglia di escludere un messaggio dalla regola se è necessaria la funzionalità specifica fornita dal tipo concreto.

Regole correlate

CA1011: Considerare il passaggio di tipi di base come parametri