LocalReport.ExecuteReportInCurrentAppDomain Método

Nota: esta API ya está obsoleta.

Provoca la ejecución de las extensiones y expresiones de procesamiento del informe en el AppDomain actual.

Espacio de nombres:  Microsoft.Reporting.WebForms
Ensamblado:  Microsoft.ReportViewer.WebForms (en Microsoft.ReportViewer.WebForms.dll)

Sintaxis

'Declaración
<ObsoleteAttribute("This method requires Code Access Security policy, which is deprecated.  For more information please go to https://go.microsoft.com/fwlink/?LinkId=160787.")> _
Public Sub ExecuteReportInCurrentAppDomain ( _
    reportEvidence As Evidence _
)
'Uso
Dim instance As LocalReport
Dim reportEvidence As Evidence

instance.ExecuteReportInCurrentAppDomain(reportEvidence)
[ObsoleteAttribute("This method requires Code Access Security policy, which is deprecated.  For more information please go to https://go.microsoft.com/fwlink/?LinkId=160787.")]
public void ExecuteReportInCurrentAppDomain(
    Evidence reportEvidence
)
[ObsoleteAttribute(L"This method requires Code Access Security policy, which is deprecated.  For more information please go to https://go.microsoft.com/fwlink/?LinkId=160787.")]
public:
void ExecuteReportInCurrentAppDomain(
    Evidence^ reportEvidence
)
[<ObsoleteAttribute("This method requires Code Access Security policy, which is deprecated.  For more information please go to https://go.microsoft.com/fwlink/?LinkId=160787.")>]
member ExecuteReportInCurrentAppDomain : 
        reportEvidence:Evidence -> unit 
public function ExecuteReportInCurrentAppDomain(
    reportEvidence : Evidence
)

Parámetros

Comentarios

Nota importanteImportante

zzEste método está desusado para .NET Framework 4 porque la característica de seguridad de acceso del código (CAS) en la que se basa está desusada en .NET Framework 4. En su lugar, el control ReportViewer siempre se ejecuta en el dominio de aplicación de espacio aislado. Debe emplear AddFullTrustModuleInSandboxAppDomain y SetBasePermissionsForSandboxAppDomain. Si desea continuar utilizando este método con .NET Framework 4.0, debe usar el elemento de configuración <NetFx40_LegacySecurityPolicy> en el archivo Web.config de la aplicación ASP.NET. De lo contrario, este método producirá una excepción InvalidOperationException.

Para obtener más información, vea Code Access Security Policy Compatibility and Migration.

Las expresiones del informe se ejecutarán en el objeto AppDomain actual solamente con la marca de permiso de seguridad Execution. De forma predeterminada, los ensamblados personalizados no están permitidos en este modo. Se trata del modo predeterminado en .NET Framework 3.5, y es el modo que se debe usar para los informes de confianza. Vea la tabla siguiente para conocer los modos de dominio de aplicación predeterminados de las distintas versiones de .NET Framework.

Versión de .NET Framework

¿LegacySecurityPolicy habilitado?

Dominio de aplicación predeterminado

Modos de dominio de aplicación utilizables

4

No (valor predeterminado)

Espacio aislado

Espacio aislado

4

Actual

Espacio aislado y actual

3.5

N/D

Actual

Espacio aislado y actual

Este modo también se puede utilizar para ejecutar informes no confiables que utilizan extensiones de procesamiento confiables.

Para permitir las extensiones de procesamiento confiables, la aplicación debe llamar a AddTrustedCodeModuleInCurrentAppDomain.

Ejemplos

En este ejemplo, un ensamblado personalizado que contiene una función de utilidad simple que lee algunos datos de un archivo de texto se utiliza como una expresión en un informe.

using System.IO;
using System.Reflection;

public class Util
{
    public static string GetData()
    {
        StreamReader sr = new StreamReader("data.txt");
        string data = sr.ReadToEnd();
        sr.Close();
        return data;
    }
}

El siguiente código se utiliza para permitir la ejecución del informe con el ensamblado personalizado en el objeto AppDomain actual.

reportViewer.LocalReport.ReportPath = "Report1.rdlc";
reportViewer.LocalReport.ExecuteReportInCurrentAppDomain(
      Assembly.GetExecutingAssembly().Evidence);
reportViewer.LocalReport.AddTrustedCodeModuleInCurrentAppDomain("Contoso.Utilities, 
      Version=1.0.271.0, Culture=neutral, PublicKeyToken=89012dab8080cc90");

Vea también

Referencia

LocalReport Clase

Espacio de nombres Microsoft.Reporting.WebForms