我知道规范模式描述了如何使用实现类的层次结构ISpecification<T>来评估 T 类型的候选对象是否匹配某个规范(= 满足业务规则)。
我的问题:我要实现的业务规则需要评估多个对象(例如,客户和合同)。
我的双重问题:
是否有规范模式的典型改编来实现这一点?我只能考虑删除ISpecification<T>我的规范类的实现,并在isSatisfiedBy()方法中采用尽可能多的参数。但是通过这样做,我失去了将这个规范与其他规范结合起来的能力。
这个问题是否表明我的设计存在缺陷?(即我需要使用 Customer 来评估什么,而应该在另一个对象上评估合同,比如订阅,它可以包含所有必要的信息)?
我已经使用jQuery Validation插件整理了一个表单,并且所有输入都可以正常工作验证和错误消息 - 复选框除外.我有两个复选框问题.
第一个是Validation插件API似乎不处理分组上下文中的复选框(我使用字段集进行分组).在这里找到了几个解决这个问题的方法,包括参考Rebecca Murphey关于使用自定义方法和类的更一般情况的帖子.适应这种情况:
jQuery.validator.addMethod('required_group', function(val, el) {
var fieldParent = $(el).closest('fieldset');
return fieldParent.find('.required_group:checked').length;
});
jQuery.validator.addClassRules('required_group', {
'required_group': true
});
jQuery.validator.messages.required_group = 'Please check at least one box.';
Run Code Online (Sandbox Code Playgroud)
这种方法有效,但会在每个复选框上生成错误消息,并且仅在单击每个框时将其删除.这对用户来说是不可接受的情况,用户只能通过点击误报来消除它们.理想情况下,我猜需要的是在显示之前阻止或消除额外消息,并使用errorPlacement在父字段集中显示单个错误消息,然后通过单击任何复选框将其删除.理想情况下,也许它们都会显示,但事件处理程序可以通过点击关闭整套冗余消息,这就是tvanfosson提供的这种方法.(这里有另一个定制的方法,但我无法让它工作.)我想我还应该注意这个表单要求复选框有不同的名称.
我的第二个问题是,表单中带有复选框的其中一个字段集还包含一个外部复选框下的复选框的嵌套字段集.因此,除了第一级单框检查要求之外,如果选中包含第二级复选框的特定复选框,则必须至少检查一个第二级框.不确定正确的方法; 我猜测需要发生什么(遵循上述方案)是触发器复选框将使用toggleClass向子域中的所有复选框添加/删除'required_group'类,然后(希望)表现与父项相同领域:
$("#triggerCheckbox").click(function () {
$(this).find(":checkbox").toggleClass("required_group");
});
Run Code Online (Sandbox Code Playgroud)
任何建议或想法欢迎.我已经远远超出了我在这一方面有限的jQuery技能,并且很高兴听到我错过了简单,优雅和/或明显的方法来做到这一点!
我在IIS 6上的Windows 2003服务器上运行了一个网站,为每个人都在使用域帐户的局域网提供服务.在其他机器上工作正常,没有人必须登录到网站,动态脚本从HTTP请求中获取帐户名称.
仅当从服务器本身浏览(例如通过远程桌面)时,Internet Explorer在导航到此站点时仍会弹出域登录对话框.(通常的URL和http:// localhost /).这在我们最近迁移网站的Windows 2000服务器上没有问题.
我试图通过迭代加载引用的程序集.
我加载程序集,并通过getRefs获取引用的程序集.getRefs没有任何输入参数所以它应该是val getRefs:Assembly-> AssemblyName [],但认为它是unit-> AssemblyName [],有什么想法吗?
let getreffiles (name:string) =
let loadAssembly (name:string)=
Assembly.Load(name)
let getRefs (assembly:Assembly)=
assembly.GetReferencedAssemblies
//Get the referenced assembly list and print the full name to console
name
|>loadAssembly
|>getRefs
|>List.iter (fun s ->
printfn "Referenced Assembly name %s types" s.FullName);;
Run Code Online (Sandbox Code Playgroud)
Type mismatch. Expecting a (unit -> AssemblyName []) -> 'a but given a 'b list -> unit
The type 'unit -> AssemblyName []' does not match the type ''a list'
C:\Users\Ebru\Documents\Visual Studio …Run Code Online (Sandbox Code Playgroud) 是否有一个Eclipse插件,它会在后台每隔5分钟自动保存一次eclipse工作区,因为每次eclipse崩溃时整个工作区布局都会恢复或打开文件会丢失,而且此时非常烦人.
我是堆栈溢出的新用户,我的英语非常好,我希望你能理解我的麻烦.
当我编译我的模板时,这个档案.cs就可以了(Context,Structs),但在ActiveRecord中代码不完整.
似乎系统Break de compilation在第5017行并没有向我返回任何例外.
我的代码在这里停止:
Run Code Online (Sandbox Code Playgroud)public static PagedList<Veiculoopcional>GetPaged(int pageIndex,int pageSize){return GetRepo().GetPaged(pageIndex,pageSize);
Run Code Online (Sandbox Code Playgroud)} public string KeyName() { return "
我想这可能是我的桌子"VeiculoOpcional"传输或问题的限制..我不知道.
无论如何这是表格的结构:
CREATE TABLE `veiculoopcional` (
`ID_Veiculo` int(11) NOT NULL,
`ID_Opcional` int(4) NOT NULL,
PRIMARY KEY (`ID_Veiculo`,`ID_Opcional`),
KEY `FK_veiculoopcional_Opcional` (`ID_Opcional`),
CONSTRAINT `FK_veiculoopcional_Opcional` FOREIGN KEY (`ID_Opcional`) REFERENCES `opcional` (`ID_Opcional`) ON DELETE NO ACTION ON UPDATE NO ACTION,
CONSTRAINT `FK_veiculoopcional_Veiculo` FOREIGN KEY (`ID_Veiculo`) REFERENCES `veiculo` (`ID_Veiculo`) ON DELETE NO ACTION ON UPDATE NO ACTION
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci
Run Code Online (Sandbox Code Playgroud)
有没有人遇到过这个问题?我没有在网上找到任何反思
非常感谢.
好吧,这个已经让我疯狂多年,VS 2010并没有改善这一点.说我有一个这样的变量
string szSql =
@"SELECT
Foo, Bar
FROM
Table
WHERE
Foo = Bar";
Run Code Online (Sandbox Code Playgroud)
如果我在调试器中检查它并选择"复制值",放入剪贴板的值有\ r \n代替回车,这有点痛苦.有没有办法改变这种行为?(我知道我可以在命令窗口打印它......)
干杯,
亚历克斯
我目前正试图通过引入智能指针来解决代码库中的一些弱点.代码库非常大,并且像一只拥有一对多咖啡的蜘蛛相互关联.
我想知道人们是否曾尝试过以前的做法以及他们的做法是什么.
我的第一步是typedef类,如下所示.
#ifndef USE_SMART_POINTERS
#define USE_SMART_POINTERS 0
#endif
#if USE_SMART_POINTERS == 1
#include <boost/smart_ptr.hpp>
#endif
namespace ProductX
{
// forward decleration
class CTObject;
//typedefs
#if USE_SMART_POINTERS == 1
typedef boost::shared_ptr<CTObject> CTObjectPtr;
#else
typedef CTObject* CObjectPtr;
#endif
}
Run Code Online (Sandbox Code Playgroud)
现在我意识到这将导致丰富的编译领域,比如
CTObjectPtr i = NULL;
Run Code Online (Sandbox Code Playgroud)
当智能指针启用时,将完全bork.
我想知道在这个早期阶段是否有任何我可以做的事情来减少编译错误的数量,或者是因为我怀疑只是根据具体情况进行处理.
干杯里奇
我试图找出这些方法之间的一些差异.是否存在使用行为并且无法使用附加属性执行相同功能的情况?
哪种方式最好将销售信息存储在数据库中:
asp.net-mvc ×1
assembly ×1
behavior ×1
boost ×1
c# ×1
c++ ×1
checkbox ×1
data-binding ×1
debugging ×1
eclipse ×1
f# ×1
iis ×1
jquery ×1
lambda ×1
refactoring ×1
shared-ptr ×1
subsonic ×1
subsonic3 ×1
wpf ×1