Esclusione dei tipi

Questa opzione consente di escludere un tipo in base al nome o all'identificatore di attributi. Per specificare il nome del tipo è possibile utilizzare un'espressione regolare.

I nomi dei tipi devono essere nomi completi.

Le classi interne o nidificate vengono specificate utilizzando una barra ('/') come delimitatore tra la classe esterna e quella interna. Ad esempio:

<type name="Library.Class1/NestedClass"/>

Gli identificatori di attributi vengono selezionati o deselezionati con l'attributo "speclist", ovvero un elenco separato da virgole di identificatori di attributi validi per i tipi. I valori validi sono i seguenti:

abstract
interface
nestedassembly
nestedfamily
nestedfamorassem
nestedprivate
nestedpublic
notpublic
public
sealed
serializable
enum

Un segno meno ('-') anteposto a un identificatore di attributi nega la regola, ovvero esclude tutte le classi che non contengono l'attributo specificato. È possibile specificare un segno più ('+'), sebbene non sia necessario. Le regole implicite in tale elenco sono collegate dall'operatore logico AND, a indicare che il set di tipi esclusi è l'intersezione di tutti i tipi corrispondenti a ciascuna regola. La regola riportata di seguito esclude ad esempio qualsiasi tipo definito come public E (AND) sealed.

<type name=".*" speclist="+public,+sealed" regex="true"/>

L'elemento <type> può inoltre essere utilizzato semplicemente per selezionare un tipo allo scopo di specificare regole per l'esclusione dei relativi metodi e campi. Ciò consente di rinominare i tipi mantenendo i nomi dei relativi membri. A questo scopo, viene utilizzato l'attributo facoltativo "excludetype". Se viene omesso, il valore predefinito è "true" e il nome del tipo viene escluso.

<type name="MyCo.Test.MyOtherTest" excludetype="false">
 <!-- methods and fields excluded here -->
 ...
</type>

Se un elemento <type> non contiene elementi campo o metodo nidificati, per l'esclusione non viene selezionato alcun metodo o campo. È così possibile mantenere i nomi dei tipi consentendo al tempo stesso la ridenominazione dei membri.

Vengono inoltre mantenuti i nomi di eventi e proprietà dei tipi esclusi. Se un tipo non viene escluso e l'opzione di libreria non è impostata, i nomi di proprietà ed eventi vengono rimossi.

© 2002-2007 PreEmptive Solutions. Tutti i diritti riservati.