SetRestrictedTypes

ReportingEngine.SetRestrictedTypes method

Specifica i tipi, quali membri e quali membri dei tipi derivati non devono essere accessibili al motore tramite la sintassi del modello.

public static void SetRestrictedTypes(params Type[] types)
ParametroTipoDescrizione
typesType[]Tipi da limitare.

Osservazioni

I tipi limitati dovrebbero essere impostati prima della prima creazione di un report. DopoReport di costruzione viene invocato, i tipi con restrizioni non possono essere modificati e viene generata un’eccezione nel tentativo di farlo. Il posto migliore per impostare i tipi con restrizioni è l’avvio dell’applicazione.

Si noti che una grande quantità di tipi limitati può influire sulle prestazioni, quindi è meglio limitare solo quei tipi il cui accesso ai membri è davvero sensibile.

LanciArgumentException nei seguenti casi:

-types è nullo.

  • Uno ditypes gli articoli sononull.

  • Uno ditypes items rappresenta un tipo invisibile, vale a dire un tipo non pubblico oppure un tipo pubblico annidato che ha un tipo esterno non pubblico.

  • Uno ditypes items rappresenta un tipo array.

-types contengono voci duplicate.

Esempi

Mostra come negare l’accesso ai membri di tipi considerati non sicuri.

Document doc =
    DocumentHelper.CreateSimpleDocument(
        "<<var [typeVar = \"\".GetType().BaseType]>><<[typeVar]>>");

// Tieni presente che non è possibile impostare tipi con restrizioni durante o dopo la creazione di un report.
ReportingEngine.SetRestrictedTypes(typeof(System.Type));
// Impostiamo l'opzione "AllowMissingMembers" per evitare eccezioni durante la creazione di un report.
ReportingEngine engine = new ReportingEngine() { Options = ReportBuildOptions.AllowMissingMembers };
engine.BuildReport(doc, new object());

// Otteniamo una stringa vuota perché non possiamo accedere al metodo GetType().
Assert.AreEqual(string.Empty, doc.GetText().Trim());

Guarda anche