小编Dve*_*Dve的帖子

使用C#Action委托实现命令模式

是否可以使用Queue of Action代理实现GOF命令模式?

我一直试图绕过它一段时间而且我很难过,因为我想要添加到队列中的每个可能的动作可能有不同数量的参数.

有什么建议?我是否通过专注于命令模式来咆哮错误的树?

更新:

非常感谢jgauffin,这是一种享受...我的实现现在看起来像

public class CommandDispatcher
{
    private readonly Dictionary<Type, List<Action<ICommand>>> _registeredCommands =
        new Dictionary<Type, List<Action<ICommand>>>();

    public void RegisterCommand<T>(Action<ICommand> action) where T : ICommand
    {
        if (_registeredCommands.ContainsKey(typeof (T)))
            _registeredCommands[typeof (T)].Add(action);
        else
            _registeredCommands.Add(typeof (T), new List<Action<ICommand>> {action});
    }

    public void Trigger<T>(T command) where T : ICommand
    {
        if (!_registeredCommands.ContainsKey(typeof(T)))
            throw new InvalidOperationException("There are no subscribers for that command");

        foreach (var registeredCommand in _registeredCommands[typeof(T)])
        {
            registeredCommand(command);
            if (command.Cancel) break;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

c# delegates design-patterns command-pattern

7
推荐指数
1
解决办法
9226
查看次数

使用ASP.NET Web API的N-Teir架构

我只是想绕过这个概念.我编写了几个不同的Web API,但它们一直被网站使用并通过JSON进行交互.我有一个关于如何在Windows服务使用Web API时构建实现的问题.

在这种情况下,已经有一个现有的数据库,所以我想使用Entity Framework的Database First方法.

我为模型创建了一个类库项目,并使用Entity Framework查看现有数据库并生成所有必需的类.

然后,我创建一个Web API项目,并将包含所有模型的类库添加到其中.到目前为止,我很好.

我的问题是,当我构建将与Web API交互的Windows服务时,如何从类库模型项目中访问类?我知道我可以将该项目添加到我的Windows服务中,但这似乎不是正确的方法,因为这几乎会绕过Web API.

我想我的问题是,如果我想从我的Windows服务创建并将一个Employee对象传递给我的Web API(因此它可以将其插入到数据库中),Windows服务如何获取Employee对象而不将类库添加到Windows服务项目?

c# n-tier-architecture asp.net-web-api

7
推荐指数
1
解决办法
3031
查看次数

ExtJs从数据存储区记录动态构建formpanel

我试图从数据存储记录动态填充ExtJs FormPanel.当用户单击GridPanel中的一行时,将调用buildForm方法,并将所单击的记录作为第一个arg传入.

下面的代码(调试时)似乎正在工作,但doLayout方法没有效果.

谁能指出我正确的方向?

mymodule = Ext.extend(Ext.FormPanel, {
    forceLayout: true,
    initComponent: function () {
        Ext.applyIf(this, {
            id: Ext.id(),
            labelWidth: 75,
            defaultType: 'textfield',
            items: [{
                layout: 'form',
                items: [{
                    fieldLabel: 'test',
                    xtype: 'textfield'
                }, {
                    fieldLabel: 'test',
                    xtype: 'textfield'
                }]
            }]
        });
        mymodule.superclass.initComponent.call(this);
    },
    buildForm: function (record, c) {
        var form = this.getForm();

        var formItems = new Ext.util.MixedCollection();

        Ext.each(record.fields.items, function (item) {
            formItems.add(new Ext.form.TextField({
                labelStyle: 'width:100px',
                fieldLabel: item.name,
                name: item.dataIndex,
                id: 'field-' + item.name
            }));
        }, this);

        form.items = …
Run Code Online (Sandbox Code Playgroud)

forms extjs dynamic

6
推荐指数
1
解决办法
6033
查看次数

不安全的JavaScript尝试访问框架...域,协议和端口必须匹配

不安全的JavaScript尝试与URL访问框架http://example.com/jobs/listings/从框架与URL http://example.com/a/j/jobvite/FrameResize.html?height=1446.域,协议和端口必须匹配.

我不知道为什么我会收到这个错误.它发生在jobvite iframe中,但是这条消息毫无意义,因为域,protocals和端口都匹配.

它适用于Firefox,但不适用于IE,Safari和Chrome.

javascript iframe

6
推荐指数
0
解决办法
5600
查看次数

确定性标量函数,以获取日期的星期几

SQL Server,尝试通过确定性UDF获取星期几.

我相信这一定是可能的,但无法弄明白.

更新:示例代码..

CREATE VIEW V_Stuff WITH SCHEMABINDING AS 
SELECT    
MD.ID, 
MD.[DateTime]
...
        dbo.FN_DayNumeric_DateTime(MD.DateTime) AS [Day], 
        dbo.FN_TimeNumeric_DateTime(MD.DateTime) AS [Time], 
...
FROM       {SOMEWHERE}
GO
CREATE UNIQUE CLUSTERED INDEX V_Stuff_Index ON V_Stuff (ID, [DateTime])
GO
Run Code Online (Sandbox Code Playgroud)

sql-server user-defined-functions

5
推荐指数
2
解决办法
3917
查看次数

使用RequireJS,LABjs(或类似)进行ExtJs依赖关系管理

我试图找到如何将ExtJs和ExtJs模块包装起来用于javascript依赖框架(如RequireJS或LAB)的示例.

我正在使用一个基于ExtJs的大型项目,并且有许多单独的模块文件,这些文件只是大量包含在各处,它有点失控.

有没有人使用现有的ExtJs依赖管理框架?(我知道ExtJs 4可能包含类似的东西,但我修复了使用ExtJs 3)

extjs dependency-management requirejs labjs extjs3

5
推荐指数
1
解决办法
3473
查看次数

如何在keydown上使用Javascript模拟悬停?

首先,我想只使用本机JavaScript来完成这项任务.

假设我要制作自定义下拉列表,HTML代码看起来就像这样.

<div class="dropdown">
  <span class="dropdown-label" style="display:block">Select a thing</span>
  <ul class="dropdownItemContainer">
    <li>Item 1</li>
    <li>Item 2</li>
    <li>Item 3</li>
    <li>Item 4</li>
    <li>Item 5</li>
    <li>Item 6</li>
  </ul>
</div>
Run Code Online (Sandbox Code Playgroud)

在CSS文件中,我有一些接近这个:

ul.dropdownItemContainer li:hover {
  background-color: #FF0000;
}
Run Code Online (Sandbox Code Playgroud)

是的,确实没有丢弃行为,但实际上并不是讨论的重点.问题是我想不出一个合适的方法来为这个下拉列表启用键盘控制.所需的结果如下:我按下向下键,第一个选项突出显示; 我再次按下它,第二个选项突出显示,依此类推.

我在这一点上看到的唯一选项(刚刚开始研究JS)就是将所有ul的孩子,stick'em带到一个数组中,并且只要向下键是正确的,就可以通过JS方法为标签指定背景颜色.按下.

另一方面,我仍然有CSS中描述的用于鼠标控制的悬停行为.有一种模拟悬停的聪明方法吗?

javascript hover onkeydown

5
推荐指数
1
解决办法
6577
查看次数

在javascript中正确使用continue

我一直相信你继续使用如下:

var i;

for (i = 0;  i < 10; i++) {
  if(i%2===0) {
    continue;
  }
}   
Run Code Online (Sandbox Code Playgroud)

要么

var i, myloop;

myloop: for (i = 0;  i < 10; i++) {
  if(i%2===0) {
    continue myloop;
  }
}
Run Code Online (Sandbox Code Playgroud)

但是当我通过JSLint运行这两段代码时,我得到错误:


Problem at line 5 character 5: Unexpected 'continue'.
     continue;

我究竟做错了什么?什么是正确的用法?

javascript loops

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

从有序对构建图表

我有一些生成数组的代码;每个索引处都有一个带有 x 和 y 坐标的数组。我想使用 d3.js 将这些点绘制为图表,但不知道如何去做。

我查看了该网站和示例,但没有发现任何内容可以帮助我完成这项任务。此处的链接是我尝试创建的图表类型的示例,但我希望能够在一个网格上创建多个图表。

我基本上需要一些关于如何开始的指导,因为我完全迷失了。任何帮助,将不胜感激。

javascript svg d3.js

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

隐藏并显示文本字段

我是javascript的初学者.我想在按钮上显示一个隐藏的文本框.我做了下面的代码,但它不起作用.

我的代码有什么问题?

<!DOCTYPE html>
<html>
    <head>
        <script type="text/javascript">
        function display() {
            var z = prompt("enter your name...");
            if(z != null) {
                document.getElementById("demo").innerHTML = "thankyou " + z + "..";
                document.getElementById("case").style.visibility = 'visible';
            } else {
                document.getElementById("demo").innerHTML = "thankyou";
            }
        }
        </script>
        <title></title>
    </head>
    <body>
        <p id="demo">
            click on the button.....
        </p><button type="button" onclick="display()">submit</button>
        <form>
            <input type="text" id="case" name="myText" style="display:none">
        </form>
    </body>
</html>
Run Code Online (Sandbox Code Playgroud)

javascript

4
推荐指数
2
解决办法
8万
查看次数