是否可以使用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) 我只是想绕过这个概念.我编写了几个不同的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服务项目?
我试图从数据存储记录动态填充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) 不安全的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.
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) 我试图找到如何将ExtJs和ExtJs模块包装起来用于javascript依赖框架(如RequireJS或LAB)的示例.
我正在使用一个基于ExtJs的大型项目,并且有许多单独的模块文件,这些文件只是大量包含在各处,它有点失控.
有没有人使用现有的ExtJs依赖管理框架?(我知道ExtJs 4可能包含类似的东西,但我修复了使用ExtJs 3)
首先,我想只使用本机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中描述的用于鼠标控制的悬停行为.有一种模拟悬停的聪明方法吗?
我一直相信你继续使用如下:
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;
我究竟做错了什么?什么是正确的用法?
我有一些生成数组的代码;每个索引处都有一个带有 x 和 y 坐标的数组。我想使用 d3.js 将这些点绘制为图表,但不知道如何去做。
我查看了该网站和示例,但没有发现任何内容可以帮助我完成这项任务。此处的链接是我尝试创建的图表类型的示例,但我希望能够在一个网格上创建多个图表。
我基本上需要一些关于如何开始的指导,因为我完全迷失了。任何帮助,将不胜感激。
我是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)