小编Bro*_*nie的帖子

jquery-ui-dialog - 如何挂钩到对话框关闭事件

我正在使用jquery-ui-dialog插件

我正在寻找在某些情况下关闭对话框时刷新页面的方法.

有没有办法从对话中捕获一个关闭事件?

我知道我可以在单击关闭按钮时运行代码但不包括用户使用escape或右上角的x关闭.

javascript jquery jquery-ui modal-dialog jquery-ui-dialog

183
推荐指数
8
解决办法
25万
查看次数

告诉SBT将所有依赖项收集在一起

构建Web应用程序时,SBT能够将所有jar依赖项收集到WAR文件中.

是否可以让SBT将我依赖的所有罐子放在我的非Web应用程序中的目录中,以便在运行应用程序时可以轻松地将它们放到我的类路径中?

scala sbt

18
推荐指数
1
解决办法
5785
查看次数

表单提交时禁用按钮

我有一个按钮,我想在表单提交时禁用,以防止用户多次提交.

我已尝试使用javascript onclick天真地禁用该按钮,但如果客户端验证失败按钮仍保持禁用状态.

如果表单成功提交不仅仅是在用户单击时,如何禁用该按钮?

这是一个ASP.NET表单,所以如果可能的话,我想很好地与asp.net ajax页面生命周期挂钩.

javascript asp.net webforms

15
推荐指数
3
解决办法
2万
查看次数

用于构建编译器的通用语言

受到Eric Sink对stackoverflow播客的采访的启发,我想在业余时间为学习体验构建一个完整的编译器.我最初的想法是构建一个C编译器,但我不确定它是否需要花费太多时间.

我想知道是否有一个较小的通用语言更适合作为第一个编译器工作实现?或者是在合理的时间范围内(200小时)可行的C实现?

我打算以CLR为目标.

compiler-construction

12
推荐指数
3
解决办法
1926
查看次数

在.NET中比较2个XML文档的最佳方法

我有一堆需要检查XML输出的单元测试.

我已经开始比较字符串,但这不会扩展,因为格式和肤浅的差异会妨碍.

.NET中最简单的方法是评估生成的XML在语义上是否与测试期望的相同?

作为副本关闭如何比较两个XML文档?

.net xml

9
推荐指数
2
解决办法
1万
查看次数

使用Castle Windsor注入多个服务实现

我想让Windsor将多个服务实现注入构造函数.

我的情况是我有多个搜索提供程序实现了一个通用接口.我想用windsor注册其中的每一个,然后将它们注入我的搜索服务中,以便它可以依次查询每个.

温莎有这样的事吗?有没有比在构造函数中注入多个实现更好的方法?

castle-windsor

9
推荐指数
1
解决办法
2362
查看次数

HttpModule中的NHibernate会话和事务管理

我在网上看到很多人在HttpModule中管理他们的NHibernate会话和事务.

HttpModule:

  1. 在请求开始时创建会话
  2. 在事务中包装整个请求
  3. 在请求结束时提交事务

如果人们使用此策略,他们如何处理以下场景:

  1. 请求进来
  2. 从数据库中检索对象
  3. 更新对象
  4. 对象验证失败
  5. 对象的更改仍然存在,因为事务是在HttpModule中提交的.

在上面的场景中似乎没有好的方法来回滚事务.我能想出的唯一计划是:

  1. 以更新我的域对象之前保证成功的方式编写我的验证(从我的域模型中取出我的验证).
  2. 管理我的事务更接近我的业务逻辑,并抛弃在HttpModule中透明地执行它的想法.(我看过不少帖子推荐这个)

看到有这么多人似乎在使用HttpModule方法,我希望有第三种管理这种情况的方法,我没想过?

asp.net nhibernate

9
推荐指数
1
解决办法
713
查看次数

Automapper忽略属性的忽略

我想在映射深度(即level> 1)对象模型时忽略某些属性.

以下测试工作正常:

class Foo
{
    public string Text { get; set; }
}

class Bar
{
    public string Text { get; set; }
}

Mapper.CreateMap<Foo, Bar>()
      .ForMember(x => x.Text, opts => opts.Ignore());

var foo = new Foo { Text = "foo" };
var bar = new Bar { Text = "bar" };
Mapper.Map(foo, bar);
Assert.AreEqual("bar", bar.Text);
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试执行相同的映射但将Foo和Bar作为父类的属性时,以下测试将失败:

class ParentFoo
{
    public Foo Child { get; set; }
}

class ParentBar
{
    public Bar Child { get; set; }
} …
Run Code Online (Sandbox Code Playgroud)

automapper

8
推荐指数
1
解决办法
3636
查看次数

防止.NET"提升"局部变量

我有以下代码:

string prefix = "OLD:";
Func<string, string> prependAction = (x => prefix + x);
prefix = "NEW:";
Console.WriteLine(prependAction("brownie"));
Run Code Online (Sandbox Code Playgroud)

因为编译器用一个闭包替换了前缀变量"NEW:brownie"被打印到控制台.

是否有一种简单的方法可以阻止编译器在仍然使用lambda表达式的同时解除前缀变量?我想要一种使我的Func工作方式相同的方法:

Func<string, string> prependAction = (x => "OLD:" + x);
Run Code Online (Sandbox Code Playgroud)

我需要这个的原因是我想序列化结果委托.如果前缀变量在非序列化类中,则上述函数不会序列化.

我现在可以看到的唯一方法是创建一个新的可序列化类,它将字符串存储为成员变量并具有字符串prepend方法:

string prefix = "NEW:";
var prepender = new Prepender {Prefix = prefix};
Func<string, string> prependAction = prepender.Prepend;
prefix = "OLD:";
Console.WriteLine(prependAction("brownie"));
Run Code Online (Sandbox Code Playgroud)

有助手类:

[Serializable]
public class Prepender
{
    public string Prefix { get; set; }
    public string Prepend(string str)
    {
        return Prefix + str;
    }
}
Run Code Online (Sandbox Code Playgroud)

这似乎是让编译器变得"愚蠢"的额外工作.

.net c# lambda

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

是否可以使用Free在DSL中实现多态函数

我正在使用Free Monads构建一个小型DSL.

我希望能够在我的DSL中拥有多态功能.

我想要构建的一个例子是:

{-# LANGUAGE TemplateHaskell #-}

import           Control.Monad.Free.Church

data Queue a = Queue a

data MyDsl next =
  NewQueue (Queue a -> next) |
  WriteToQueue (Queue a) a next

makeFree ''MyDsl

testProgram :: F MyDsl
testProgram = do
  (intQueue :: Queue Int) <- newQueue
  (charQueue :: Queue Char) <- newQueue
  writeToQueue intQueue 1
  writeToQueue charQueue 'c'
Run Code Online (Sandbox Code Playgroud)

我编码它的方式我得到的Not in scope: type variable ‘a’ 错误是有道理的.有没有办法在使用Free的DSL中拥有多态函数?

对于背景,我想这样做的原因是我可以拥有一个在幕后使用TQueue的生产解释器和一个使用内存数据结构进行测试的测试解释器.

dsl haskell free-monad

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

F#记录构造函数

有没有办法在F#中为F#记录类型调用构造函数?

我的动机是我一直在使用FSharpx的应用验证,但发现自己编写了大量的构造记录的样板函数.

buildAddress函数,例如在简单的样板文件中,我希望尽可能摆脱它.

       let buildAddress streetNumber streetLine1 streetLine2 suburb state postcode =
            {
                Address.StreetNumber = streetNumber
                StreetLine1 = streetLine1
                StreetLine2 = streetLine2
                Suburb = suburb
                State = state
                Postcode = postcode
            }

       let validateAddress streetNumber streetLine1 streetLine2 suburb state postcode =
            buildAddress 
                <!> isNumber streetNumber 
                <*> Success streetLine1 
                <*> Success streetLine2 
                <*> Success suburb 
                <*> Success state
                <*> validatePostcode postcode
Run Code Online (Sandbox Code Playgroud)

f# applicative fsharpx

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