CA1059 : Les membres ne doivent pas exposer certains types concretsCA1059: Members should not expose certain concrete types

TypeNameTypeName MembersShouldNotExposeCertainConcreteTypesMembersShouldNotExposeCertainConcreteTypes
CheckIdCheckId CA1059CA1059
CategoryCategory Microsoft.DesignMicrosoft.Design
Modification avec ruptureBreaking Change RuptureBreaking

CauseCause

Un membre extérieurement visible est un certain type concret ou expose certains types concrets via un de ses paramètres ou valeur de retour.An externally visible member is a certain concrete type or exposes certain concrete types through one of its parameters or return value. Actuellement, cette règle signale l’exposition des types concrets suivants :Currently, this rule reports exposure of the following concrete types:

Description de la règleRule description

Un type concret est un type qui présente une implémentation complète et, par conséquent, peut être instancié.A concrete type is a type that has a complete implementation and therefore can be instantiated. Pour permettre une utilisation généralisée du membre, remplacez le type concret par l’interface suggérée.To allow widespread use of the member, replace the concrete type with the suggested interface. Ainsi, le membre à accepter tout type qui implémente l’interface ou être utilisés là où un type qui implémente l’interface est attendu.This allows the member to accept any type that implements the interface or be used where a type that implements the interface is expected.

Le tableau suivant répertorie les types concrets ciblés et leurs remplacements suggérés.The following table lists the targeted concrete types and their suggested replacements.

Type concretConcrete type ReplacementReplacement
XPathDocument System.Xml.XPath.IXPathNavigable.System.Xml.XPath.IXPathNavigable.

À l’aide de l’interface découple le membre d’une implémentation spécifique d’une source de données XML.Using the interface decouples the member from a specific implementation of an XML data source.

Comment corriger les violationsHow to fix violations

Pour corriger une violation de cette règle, modifiez le type concret par l’interface suggérée.To fix a violation of this rule, change the concrete type to the suggested interface.

Quand supprimer les avertissementsWhen to suppress warnings

Il est possible de supprimer un message à partir de cette règle si la fonctionnalité spécifique fournie par le type concret est requise.It is safe to suppress a message from this rule if the specific functionality provided by the concrete type is required.

CA1011 : Envisagez de passer les types de base comme paramètresCA1011: Consider passing base types as parameters