小编Mar*_*ijn的帖子

使用返回Future的函数映射Stream

我有时会发现自己处于一种情况,即我有一些Stream[X],而且function X => Future Y我想要将它结合起来Future[Stream[Y]],而我似乎无法找到办法.例如,我有

val x = (1 until 10).toStream
def toFutureString(value : Integer) = Future(value toString)

val result : Future[Stream[String]] = ???
Run Code Online (Sandbox Code Playgroud)

我试过了

 val result = Future.Traverse(x, toFutureString)
Run Code Online (Sandbox Code Playgroud)

它给出了正确的结果,但似乎在返回Future之前消耗了整个流,这或多或少地击败了purpse

我试过了

val result = x.flatMap(toFutureString)
Run Code Online (Sandbox Code Playgroud)

但那不能编译 type mismatch; found : scala.concurrent.Future[String] required: scala.collection.GenTraversableOnce[?]

val result = x.map(toFutureString)
Run Code Online (Sandbox Code Playgroud)

返回有点奇怪和无用 Stream[Future[String]]

我该怎么做才能解决问题?

编辑:我没有被困在一个Stream,我对同样的操作同样满意Iterator,只要在开始处理头部之前它不会阻止评估所有项目

Edit2:我不是100%确定Future.Traverse构造在返回Future [Stream]之前需要遍历整个流,但我认为确实如此.如果没有,那本身就是一个很好的答案.

编辑3:我也不需要结果顺序,我很好用流或迭代器返回任何顺序.

scala future stream

14
推荐指数
1
解决办法
3362
查看次数

管理dbContext的生命周期

我想将dbContext的生命周期与会话的生命周期联系起来,例如 - 能够在多个请求上提交或放弃对dbcontext上的一组突变的更改.

有没有其他(更好?)方法来实现这一目标?如果不是,那么创建和处理上下文的合适机制是什么?我正在考虑在会话结束时使用清理的静态哈希表,但也许我正在做它所有错误.我也在考虑只关注那些必须在多个请求上工作的上下文,并保持其余的每个操作的想法.有什么建议?

entity-framework dbcontext asp.net-mvc-4

12
推荐指数
1
解决办法
9152
查看次数

将参数传递给XSLT样式表

我正在尝试将一些参数传递给XSLT样式表.我遵循了这个例子:通过.NET将参数传递给XSLT样式表.

但我的转换页面没有正确显示值.

这是我的C#代码.我不得不添加自定义函数来执行某些算术,因为Visual Studio 2010不使用XSLT 2.0.

  var args = new XsltArgumentList();
  args.AddExtensionObject("urn:XslFunctionExtensions", new XslFunctionExtensions());
  args.AddParam("processingId", string.Empty, processingId);

  var myXPathDoc = new XPathDocument(claimDataStream);
  var xslCompiledTransformation = new XslCompiledTransform(true);

  // XSLT File
  xslCompiledTransformation.Load(xmlReader);

  // HTML File
  using (var xmlTextWriter = new XmlTextWriter(outputFile, null))
  {
      xslCompiledTransformation.Transform(myXPathDoc, args, xmlTextWriter);
  }
Run Code Online (Sandbox Code Playgroud)

这是我的XSLT:

    <xsl:template match="/">
    <xsl:param name="processingId"></xsl:param>
    ..HTML..
    <xsl:value-of select="$processingId"/>
Run Code Online (Sandbox Code Playgroud)

我错过了什么吗?

c# xslt transformation

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

将期货传递给whenReady失败

我正在尝试用期货编写一个规范,我不确定我应该如何使用这个Futures特性.我必须传递whenReady一个FutureConcept,但我找不到我应该如何构建一个Future.文件内容如下:

为了使whenReady更广泛适用,它接受的未来类型是FutureConcept [T],其中T是未来承诺的价值类型.将future传递给whenReady需要从您希望传递的未来类型(建模类型)到FutureConcept [T]的隐式转换.

据我所知,我必须在a Future和a 之间写一个隐式转换FutureConcept(这对我来说似乎不对,因为它似乎应该是样板文件,但它是我唯一可以做到的).我无法弄清楚如何做到这一点,FutureConcept的文档很方便地告诉我

有关此特征为期货测试提供的语法的详细信息,请参阅特征期货的文档.

让我走完整圈.我做的最简单的例子是

import scala.concurrent._
import scala.concurrent.ExecutionContext.Implicits.global

import org.scalatest.WordSpecLike
import org.scalatest.concurrent._

class FutureSpec extends WordSpecLike with Futures {
  "A future" must {
    "be a valid argument for whenReady" in {
      val fut = future { 42 }
      whenReady(fut) { res => s should be 42 }
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

那不编译

  • 类型不匹配; 发现:scala.concurrent.Future [Int] required:FutureSpec.this.FutureConcept [?]
  • ';' 预期,但发现整数字面量.

我应该做些什么呢?

unit-testing scala future scalatest

10
推荐指数
1
解决办法
5331
查看次数

Nuget 4在哪里安装

Visual Studio 2017附带Nuget 4.0.0.但是,它没有放在路径上.我在哪里可以找到使用CLI的nuget可执行文件?

nuget visual-studio-2017

10
推荐指数
1
解决办法
2781
查看次数

vb.net中表单的自定义构造函数:最佳实践

我对vb.net很新,而且windows形成了一个整体的开发,所以这可能都是非常基本的,但是这里有.

我想从其他形式打开一个新表单,并将一些选定对象从该表单上的控件传递给新表单.我认为,这样做的明智方法是作为表单构造函数的参数.现在我知道visual studio GUI为我的表单创建了部分类,它包含了我可以在设计器中拖动到那里的属性.我假设它也拥有默认构造函数.因为它可能会做各种初始化表单所需的东西,我想我应该从我的自定义构造函数ala中调用它

public sub new(byval my_parameter as Foo)
  Me.new()
  Me.my_parameter = my_parameter
  do_some_initialisation()
end sub
Run Code Online (Sandbox Code Playgroud)

显然不是这样,因为它找不到默认的构造函数.问题是,visual studio不遗余力地阻止我看到生成的构造函数,所以我知道如何访问它.这让我相信我实际上做错了,应该开始走上一条不同的道路,因为你被迫进入的道路通常是明智的做法,我通常会发现它太晚了.

那我该怎么做这样的事呢?

vb.net visual-studio-2008 winforms

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

system.web.mail vs system.net.mail

System.Web.Mail和之间有什么区别System.Net.Mail

c# asp.net

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

将sbt-web资源jar添加到sbt-native-packager的类路径中

我有一个多项目构建,我正在尝试将带有sbt-web生成的资产的jar添加到启动脚本的类路径中

我感兴趣的项目叫做website.

输入show website/web-assets:packageBinsbt会创建并显示带有资产的jar.我试过投入(managedClasspath in website) += website/web-assets:packageBin,但是没有编译:

path/to/build.sbt:58:error:value /不是sbt.Project的成员

网站中的managedClasspath + = website/web-assets:packageBin

如何在运行stage任务时创建带有资源的jar,并将其放在启动脚本的类路径中

sbt sbt-native-packager sbt-web

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

如何在任务 DotNetCoreCLI@2 中使用带有 --skip-duplicate 选项的“nuget push”

在 Azure DevOps 中,我想使用 dotnet 核心 CLI 任务来推送带有 --skip-duplicate 选项集的包。我怎么做?

我试图设置arguments: --skip-duplicate,但这并没有反映在执行的命令中。

我尝试使用 自定义命令custom: nuget push,但这表明 nuget push 不是有效的自定义命令。

如何使 DotNetCorCLI@2 任务执行dotnet nuget push <pathspec> --skip-duplicate(还将--source选项设置为内部包源)

azure azure-devops

8
推荐指数
3
解决办法
3512
查看次数

A => => B是什么意思?

另一个问题中,我最终得到了一个类型的值A => => B.这是什么意思?

我总是被理解=> A为实际上并不是一个类型,但是可以声明一个参数可以用于逐个语调的语义.但如果它不是一种类型,那A => => B意味着什么?

scala pass-by-name

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