小编Tus*_*are的帖子

在每个派生类中具有基类静态成员的单独副本

我有以下类结构:

public abstract class PresenterBase
{
    public static Dictionary<string, MethodInfo> methodsList;

    public void Bind()
    public void Initialize();
}


public class DevicePresenter: PresenterBase
{
   public void ShowScreen();
   public void HandleEvents();    
}

public class HomePresenter: PresenterBase
{
   public void ShowScreen();
   public void HandleEvents();
}
Run Code Online (Sandbox Code Playgroud)

我希望HomePresenter和DevicePresenter具有在PresenterBase中定义的methodsList静态成员的单独副本.

不幸的是,他们与上述实现共享相同的副本.

它们是替代方法,我可以为HomePresenter和DevicePresenter单独复制methodsList吗?我不愿意在派生类中定义methodsList,因为将来如果有人添加另一个派生类,他必须记住将methodsList添加到该类.

.net c# static-classes

4
推荐指数
1
解决办法
1408
查看次数

显示javascript警报而不阻止javascript

在页面加载时,我正在启动一个计时器来检查会话是否已过期.我通过对页面进行ajax调用来检查到期日期.我需要在到期前5分钟显示警报,并在到期后重定向到默认页面.这是我的代码:

function startSessionCheckTimer() {
    setInterval(checkSessionExpiry, 60000);
}

function checkSessionExpiry() {
    $.ajax({
        type: "POST",
        url: "/Default.aspx/IsSessionOpen",
        data: "{}",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function (time) {
            if (time.d == 5) {
                //alert("Your session will expire in 5 minutes.");
                setTimeout(function () { alert('Your session will expire in 5 minutes.'); }, 100);
            }
            else if (time.d <= 0) {
                window.location = "/Default.aspx";
            }
        }
    });
}
Run Code Online (Sandbox Code Playgroud)

警报在5分钟后显示,但如果用户未单击"确定",则会阻止javascript并且不再进行ajax调用.

有没有办法我可以显示警报而不阻止它?我不想使用jQuery对话框.

html javascript asp.net asp.net-mvc jquery

3
推荐指数
1
解决办法
3060
查看次数

使用通配符或模糊搜索的 Azure 完整搜索未返回预期结果

我的 Azure 搜索索引中有以下记录

{ 
    "customerId": "8feda7ca-c9f0-40d9-86d8-434b0bbe94c2", 
    "registeredName": "TeamPeacock", 
    "tradingName": "TeamPeacock", 
}, 
{ 
    "customerId": "b445eb04-8d07-4708-a197-770cda3a459e", 
    "registeredName": "TeamPeacock1", 
    "tradingName": "TeamPeacock 1", 
}
Run Code Online (Sandbox Code Playgroud)

我使用带有通配符/模糊搜索的完整搜索来获取记录。

以下搜索查询无法获取上述记录:

查询 1 失败:

{ 
    "search": "(peacock*) OR (peacock*~) OR (peacock~)", 
    "queryType": "full", 
    "searchMode": "all" 
}
Run Code Online (Sandbox Code Playgroud)

查询 2 失败:

{ 
    "search": "(peacock*) OR (peacock*~) OR (peacock~)", 
    "queryType": "full", 
    "searchMode": "any" 
}
Run Code Online (Sandbox Code Playgroud)

查询 3 失败:

{ 
    "search": "(peacock*)", 
    "queryType": "full", 
    "searchMode": "any" 
}
Run Code Online (Sandbox Code Playgroud)

查询 4 ​​失败:

{ 
    "search": "(peacock*~) OR (peacock~)", 
    "queryType": "full", 
    "searchMode": "any" 
}
Run Code Online (Sandbox Code Playgroud)

但如果我包含术语“teampeacock”,搜索查询将返回结果。

通过查询:

{ 
    "search": …
Run Code Online (Sandbox Code Playgroud)

azure-cognitive-search azure-search-.net-sdk

0
推荐指数
1
解决办法
969
查看次数