调试时事件处理程序中的参数未命中

问题描述 投票:0回答:1

我有一个像下面的代码这样的事件处理程序:

viewer.LocalReport.SubreportProcessing += new Microsoft.Reporting.WebForms.SubreportProcessingEventHandler(LocalReport_SubreportProcessing);

将此方法作为上面事件处理程序的参数:

private static void LocalReport_SubreportProcessing(object sender, SubreportProcessingEventArgs e) {

        DateTime movementDate = Convert.ToDateTime(e.Parameters[0].Values[0]);

        TourTransactionsController controller = new TourTransactionsController();

        var movement = controller.Movements();

        List<Movement> movementList = new List<Movement>();
        movementList.Add(new Movement {
            Destination = "TEST",
            MovementDescription = "TEST",
            DateTime = Convert.ToDateTime("2017-09-25")
        });

        e.DataSources.Clear();

        e.DataSources.Add(new Microsoft.Reporting.WebForms.ReportDataSource() {
            Name = "DSMovements",
            Value = movementList
        });

        //throw new NotImplementedException();
    }

这两个方法都是在 WEB API 控制器中编写的。事件处理程序在调试时命中,但在调试时按 F11(步入)后,

LocalReport_SubreportProcessing
方法未命中。为什么
LocalReport_SubreportProcessing
方法没有命中?

非常感谢任何帮助或回答。

c# asp.net asp.net-web-api
1个回答
0
投票

注册时不会调用事件/

add
+=
它们。

当所属类调用事件时,事件将被调用。

public class EventTest
{
    void SomeOperation()
    {
        //Do something
    }

    public void Run()
    {
        SomeOperation();
        RunFinished?.Invoke(this, EventArgs.Empty); //Invoke the event, indicating that something has happened or finished
    }

    //The event itself
    public event EventHandler RunFinished;
}

public class EventSubscriber
{
    EventTest _ET = new EventTest();

    public EventSubscriber()
    {
        _ET.RunFinished += ETRunFinished; //Register my method, called when the event occurs (is invoked)
    }

    public void DoSomething()
    {
        _ET.Run();
        Console.WriteLine("Something completed.");
    }

    void ETRunFinished(object sender, EventArgs e)
    {
        Console.WriteLine("My event handler was executed.");
    }
}

事件触发时将调用您的处理程序。

注册

+=
-=
取消注册(添加/删除)时,它们不会被调用。

更多详细教程请参考MSDN。

© www.soinside.com 2019 - 2024. All rights reserved.