SetRestrictedTypes

ReportingEngine.SetRestrictedTypes method

Gibt Typen an, deren Mitglieder sowie Mitglieder abgeleiteter Typen für die Engine über die Vorlagensyntax nicht zugänglich sein sollen.

public static void SetRestrictedTypes(params Type[] types)
ParameterTypBeschreibung
typesType[]Einzuschränkende Typen.

Bemerkungen

Eingeschränkte Typen sollten vor dem ersten Erstellen eines Berichts festgelegt werden. NachBuildReport aufgerufen wird, können eingeschränkte Typen nicht geändert werden, und beim Versuch, dies zu tun, wird eine Ausnahme ausgelöst. Der beste Ort zum Festlegen eingeschränkter Typen ist der Anwendungsstart.

Beachten Sie, dass eine große Anzahl eingeschränkter Typen die Leistung beeinträchtigen kann. Daher ist es besser, nur diejenigen Typen einzuschränken, deren Zugriff auf die Mitglieder wirklich sensibel ist.

WürfeArgumentException in den folgenden Fällen:

-types ist null.

  • Einer vontypes Artikel istnull.

  • Einer vontypes items stellt einen unsichtbaren Typ dar, also einen nicht öffentlichen Typ oder einen öffentlichen verschachtelten Typ, der einen nicht öffentlichen äußeren Typ hat.

  • Einer vontypes Elemente stellen einen Array-Typ dar.

-types doppelte Einträge enthalten.

Beispiele

Zeigt, wie der Zugriff auf Mitglieder von Typen verweigert wird, die als unsicher gelten.

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

// Beachten Sie, dass Sie während oder nach dem Erstellen eines Berichts keine eingeschränkten Typen festlegen können.
ReportingEngine.SetRestrictedTypes(typeof(System.Type));
// Wir setzen die Option „AllowMissingMembers“, um Ausnahmen beim Erstellen eines Berichts zu vermeiden.
ReportingEngine engine = new ReportingEngine() { Options = ReportBuildOptions.AllowMissingMembers };
engine.BuildReport(doc, new object());

// Wir erhalten eine leere Zeichenfolge, da wir nicht auf die Methode GetType() zugreifen können.
Assert.AreEqual(string.Empty, doc.GetText().Trim());

Siehe auch