SetRestrictedTypes

ReportingEngine.SetRestrictedTypes method

Spécifie les types, les membres ainsi que les membres des types dérivés qui doivent être inaccessibles par le moteur via la syntaxe du modèle.

public static void SetRestrictedTypes(params Type[] types)
ParamètreTaperLa description
typesType[]Types à restreindre.

Remarques

Les types restreints doivent être définis avant la toute première génération d’un rapport. AprèsRapport de construction Si une exception est levée, les types restreints ne peuvent pas être modifiés. Le meilleur endroit pour définir les types restreints est le démarrage de l’application.

Notez qu’un grand nombre de types restreints peut affecter les performances, il est donc préférable de restreindre uniquement ces types dont l’accès aux membres est vraiment sensible.

LancersArgumentException dans les cas suivants :

-types est nul.

  • L’un destypes les articles sontnul.

  • L’un destypes items représente un type invisible, c’est-à-dire un type non public ou un type imbriqué public qui a un type externe non public.

  • L’un destypes items représente un type de tableau.

-types contenir des entrées en double.

Exemples

Montre comment refuser l’accès aux membres de types considérés comme non sécurisés.

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

// Notez que vous ne pouvez pas définir de types restreints pendant ou après la création d'un rapport.
ReportingEngine.SetRestrictedTypes(typeof(System.Type));
// Nous définissons l'option « AllowMissingMembers » pour éviter les exceptions lors de la création d'un rapport.
ReportingEngine engine = new ReportingEngine() { Options = ReportBuildOptions.AllowMissingMembers };
engine.BuildReport(doc, new object());

// Nous obtenons une chaîne vide car nous ne pouvons pas accéder à la méthode GetType().
Assert.AreEqual(string.Empty, doc.GetText().Trim());

Voir également