加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 在ASP.NET中调用使用签名(例如)Func类型定义的委托是否同

发布时间:2020-12-15 17:20:20 所属栏目:百科 来源:网络整理
导读:在第一次检查时,似乎确实如此.对调用堆栈的快速检查表明传递给委托的方法是按照预期执行的.然而…. 在“单击事件”中调用委托并尝试修改控件(例如可见性,绑定,更新更新面板)时没有任何反应(事实上,对于UpdatePanel.Update的显式调用,会抛出一个异常,说该方法
在第一次检查时,似乎确实如此.对调用堆栈的快速检查表明传递给委托的方法是按照预期执行的.然而….

在“单击事件”中调用委托并尝试修改控件(例如可见性,绑定,更新更新面板)时没有任何反应(事实上,对于UpdatePanel.Update的显式调用,会抛出一个异常,说该方法不能在Render之后调用 – 尽管如此,我觉得不是在页面生命周期的那个阶段,而是在一个控制事件中 – 总是作为一个回发事件处理,总是在Render之前,据我所知.).

但是…当返回到调用站点并执行相同的代码(在委托调用之后)我尝试执行(从委托调用的方法中)以影响对各种控件的更改时,它可以正常工作.

会发生什么事?

编辑
框架代码:

IModalWorkflowItem
{
    void ExecuteWorkflow();
    .....
}

public abstract class BaseModalWorkflow : IModalWorkflowItem
{
    ....
    protected Func<String,IMinervaValidator,Boolean>_action;
    ....

    /// <summary>
    /// Using the properties (if necessary) perform the action
    /// required on completion of modal workflow
    /// </summary>
    /// <returns></returns>;
    protected abstract Boolean PerformAction(PropertyBag properties);
    }

创建以lambda身份传递的对象作为匿名方法…

new ModalWorkflowUserGroupAction(ModalPopupExtender_UserPrompt,Session,(x,y) =>
                     {
                         if (UserGroupManager.UserAccessToUserGroup(membershipID,CurrentUserGroup.UserGroupID,false))
                         {
                             BindUserList();

实际通话:

/// <summary>
/// Call the next action in the modal workflow. 
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void ExpandingButton_ModalConfirmContinue_Click
                                 (Object sender,EventArgs e)
{
    if (CurrentModalWorkFlowItem != null)
    {
        CurrentModalWorkFlowItem.ExecuteWorkflow();

解决方法

是的,在任何.NET程序类型中,同步调用任何委托.这种事情并没有因为你碰巧使用ASP.NET而突然改变.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读