Condividi tramite


I membri non devono esporre tipi concreti specifici

Aggiornamento: novembre 2007

TypeName

MembersShouldNotExposeCertainConcreteTypes

CheckId

CA1059

Categoria

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

XmlNode- oppure -XPathDocument

System.Xml.XPath.IXPathNavigable.

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

Correzione di 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

Considerare il passaggio di tipi di base come parametri