小编Arn*_*sen的帖子

C#4.0动态对象是否具有一些鸭子打字功能?

根据Anders的说法,在C#4.0中,我们将获得动态类型或"静态类型是动态的"对象.这将允许任何方法调用解析在运行时而不是编译时发生.但是,是否有设施将动态对象绑定到某种合同(从而也可以获得完整的智能感知),而不是允许对它进行任何调用,即使您知道它不可能有效.

即不仅仅是

dynamic foo = GetSomeDynamicObject();
Run Code Online (Sandbox Code Playgroud)

能够投射或转换它以将其约束为已知合约,例如

IFoo foo2 = foo.To<IFoo>;
Run Code Online (Sandbox Code Playgroud)

甚至只是

IFoo foo2 = foo as IFoo;
Run Code Online (Sandbox Code Playgroud)

在C#4.0的现有材料中找不到类似的东西,但它似乎是动态范例的逻辑扩展.有更多信息的人?

duck-typing dynamic c#-4.0

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

Apache在运行mod_mono时泄漏信号量

我在mod_mono下使用mono 2.8.1运行ASP.NET MVC2应用程序,目前必须定期清除apache似乎泄漏的信号量数组.

我开始使用单转rpm的2.6.7一段时间,但是在泄漏的信号量数组(即越来越多的ipcs积累)和一些与ASP.NET MVC2的不兼容性方面都存在一些问题,所以我从源代码构建了2.8.泄漏仍在继续,所以我只是从源头构建了2.8.1,同样的事情仍在发生.这是在亚马逊AMI上(我猜它是引擎盖下的核心).症状是信号量数组不断积累,如果我在一段时间后没有用ipcrm手动删除它们,那么对ASP.NET页面的请求将不返回日志中没有错误的内容.我也在DN AM 5.4 AMI中复制了同样的问题.

是否有人在apache/mod_mono下成功运行ASP.NET,我只是遇到了一些边缘情况?由于我无法找到任何其他人发现这种情况,我认为这不是一般的ASP.NET错误.任何想法如何我可以进一步解决这个问题?

apache mono mod-mono asp.net-mvc-2

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

在什么情况下,自我类型注释提供了不可能使用extends的行为

我试图想出一个合成场景,其中自我类型和扩展行为不同,到目前为止还没有找到一个.基本示例总是讨论一种自我类型,不要求类/特征不必是依赖类型的子类型,但即使在那种情况下,自我类型和扩展之间的行为似乎是相同的.

trait Fooable { def X: String }
trait Bar1 { self: Fooable =>
  def Y = X + "-bar"
}
trait Bar2 extends Fooable {
  def Y = X + "-bar"
}
trait Foo extends Fooable {
  def X = "foo"
}
val b1 = new Bar1 with Foo
val b2 = new Bar2 with Foo
Run Code Online (Sandbox Code Playgroud)

是否存在某种形式的组合对象的某种形式的组合或功能在使用一种与另一种时不同的情况?

更新1:感谢没有自我键入的事情的例子,我很欣赏这些信息,但我真的在寻找自我和扩展可能的组合,但不可互换.

更新2:我想我遇到的具体问题是为什么各种Cake Pattern示例通常都会讨论必须使用self-type而不是extends.我还没有找到一个与扩展无关的Cake Pattern场景

extends scala self-type cake-pattern

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

从理解中恢复的更好语法

我有许多函数返回未来,这是一个理解的结果,但我需要在出路时从一些可能的失败中恢复.标准语法似乎将for comprehension捕获为中间结果,如下所示:

def fooBar(): Future[String] = {
  val x = for {
    x <- foo()
    y <- bar(x)
  } yield y
  x.recover {
    case SomeException() => "bah"
  }
}
Run Code Online (Sandbox Code Playgroud)

我找到的最好的替代方法是用括号括起整体来理解:

def fooBar(): Future[String] = (for {
  x <- foo()
  y <- bar(x)
} yield y).recover {
  case SomeException() => "bah"
}
Run Code Online (Sandbox Code Playgroud)

这似乎是一种捷径,而不是语法上的改进,所以我想知道是否有更好的方法将恢复编织为理解?

scala future for-comprehension

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

import scala.io.StdIn

我正在使用Eclipse ScalaIDE,由于某些原因我无法做到

import scala.io.StdIn
Run Code Online (Sandbox Code Playgroud)

我得到一个红色的波浪形,告诉我:

对象StdIn不是包io的成员

而且我发现它不在那个scala.io jar文件中.然而,ScalaDoc表示它应该在那里.我已经尝试了scala 2.10.4和2.11.5.我已经使用Eclipse ScalaIDE创建了scala项目,并且我还使用我一直用来scalasbt.plugin管理ScalaIDE依赖项的方法直接创建了一个sbt eclipse项目.

sbt "eclipse with-source=true"
Run Code Online (Sandbox Code Playgroud)

没有办法得到它.

我目前正在参加Coursera Reactive Programming课程,并且分配文件具有此导入功能.我可以直接用sbt编译项目,但Eclipse ScalaIDE没有完成这项工作.有线索吗?可能有充分的理由不使用scala.io.StdIn,但我的问题是为什么我不能在ScalaIDE中导入它?

谢谢

eclipse stdin scala scala-ide

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

何时在Akka中使用Ask模式

我开始学习Akka,在许多官方例子中,我看到request-response使用tell模式实现.也就是说,在工人完成工作后,他将结果作为新消息发送给发件人.例如,在这个 Pi近似官方教程中展示了如何设计应用程序,其中Master向工作人员发送一些工作,然后等待结果作为另一个消息.

主码:

def receive = {
  case Calculate ?
    for (i ? 0 until nrOfMessages) workerRouter ! Work(i * nrOfElements, nrOfElements)
  case Result(value) ?
    pi += value
    nrOfResults += 1
    if (nrOfResults == nrOfMessages) {
      // Send the result to the listener
      listener ! PiApproximation(pi, duration = (System.currentTimeMillis - start).millis)
      // Stops this actor and all its supervised children
      context.stop(self)
    }
}
Run Code Online (Sandbox Code Playgroud)

工人代码:

 def receive = {
    case Work(start, nrOfElements) ?
      sender ! Result(calculatePiFor(start, …
Run Code Online (Sandbox Code Playgroud)

scala akka

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

How to exit a script after ThreadPoolExecutor has timed out

I'm trying to cleanly exit after some work times out because a thread is being blocked by something. I'm using a ThreadPoolExecutor like this:

try:
  with concurrent.futures.ThreadPoolExecutor(max_workers=32) as executor:
    # submit some work
    workers = [executor.submit(...) for x in work]
    # wait for completion
    try:
      for f in concurrent.futures.as_completed(workers, timeout=60):
        f.result()
    except concurrent.futures.TimeoutError:
      raise TimeoutError()
except TimeoutError:
  # cleanup
Run Code Online (Sandbox Code Playgroud)

This code gets to # cleanup no problem, but the script never exits because it's waiting for that blocked thread to …

python-multithreading python-3.x

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

在 IntelliJ sbt shell 中打破 Play 'run'

使用sbt shell在 IntelliJ 项目中启动Play服务器时,您会收到提示:

[IJ]sbt:app> run

--- (Running the application, auto-reloading is enabled) ---

[info] p.c.s.AkkaHttpServer - Listening for HTTP on /0:0:0:0:0:0:0:0:9000

(Server started, use Enter to stop and go back to the console...)
Run Code Online (Sandbox Code Playgroud)

但是Enter并没有阻止它并Ctrl-C杀死整个shell,重新加载sbt。退出并返回 sbt 提示的正确方法是什么?

intellij-idea sbt playframework-2.0

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

如何为ASP.NET MVC2母版页提供一个独立于控制器的模型

我在ASP.NET MVC2下使用强类型视图和autofac进行依赖注入,我试图通过依赖注入获得一个通用的动态头.即我希望这发生在没有视图必须离开这个内容甚至现有,我希望避免静态发现容器和手动解决方案,但我找不到一种方法来轻松注入主或部分视图通过ctor或财产注入包括在主人.

我无法想象这是一个不常见的任务,但我能找到的方法是控制器子类化将数据填充到无类型的ViewData中,继承ViewModels以将主数据填充到模型中,或静态分辨率,所有这些我都是不想使用.我在俯瞰什么?

编辑:正如已经指出DI进入母版页正在与框架作斗争.所以我的问题很糟糕:我并不关心DI进入母版页,但我在网站的chrome中有一个动态元素,即母版页.为其提供模型不应该是使用该主服务器的每个控制器的责任,因为它是请求上下文,而不是控制器上下文特定的.我完全承认直接注入母版页是不合适的.如果我可以另外注册一个单独的主控制器,那就更好了.那可能吗?鉴于为主设备提供独立于控制器的模型的任务,框架适当的方法是什么?或者MVC中的共享内容是否要求每个Controller必须知道该内容?

dependency-injection master-pages ioc-container asp.net-mvc-2

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

阻止 chrome 自动建议列表

我正在使用引导日期选择器,并且最近对 Chrome 进行了更新,它开始在日期选择器顶部强加一个建议下拉菜单,如下所示:

覆盖日期选择器

我已经尝试过

autocomplete="nope"
Run Code Online (Sandbox Code Playgroud)

autocomplete="new-password"
Run Code Online (Sandbox Code Playgroud)

禁用自动填充的建议,但都不起作用。请注意,没有发生自动填充,只是在单击输入后才会弹出建议列表,所以我不知道这是否会受到autocomplete.

google-chrome autocomplete autosuggest

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