小编Mik*_*e Q的帖子

在C#中有一个函数可以关联IEnumerable上的顺序值

我有一个IEnumerable.我有一个自定义的Interval类,里面只有两个DateTimes.我想将IEnumerable转换为IEnumerable,其中n个DateTimes将枚举为n-1个间隔.

因此,如果我将1月1日,2月1日和3月1日作为DateTime,那么我想要两个时间间隔,1月1日/ 2月1日和2月1日/ 3月1日.

是否存在执行此操作的现有C#Linq函数.像下面的相关内容......

IEnumerable<Interval> intervals = dttms.Correlate<DateTime, Interval>((dttm1, dttm2) => new Interval(dttm1, dttm2));
Run Code Online (Sandbox Code Playgroud)

如果不是,我会自己滚动.

c# linq

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

使用nant创建MSI的最快途径

我有一个当前的构建过程,它使用MSBuild进行.NET构建,然后我最终得到所有项目DLL/EXE和第三方DLL在同一目录中的子目录中的一些资源.

我想把这个包打包成一个MSI.我环顾四周,找到了WiX并且它没有任何可用的任务.但是,似乎我需要维护一个.wxs文件,其中包含对DLL完整列表的引用.我真的想避免手动维护这个文件或任何其他文件.

实际上我有许多使用共享构建脚本的项目,因此每个项目都以一致的方式构建.因此,我希望MSI步骤自动化,否则每个项目都必须使用当前DLL列表+任何资源文件维护.wxs文件.

是否可以使用WiX或其他任何工具,我可以将它指向一个目录并让它打包每个文件/子目录而不需要配置文件?

nant windows-installer wix

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

BigDecimal.valueOf的性能(双d)

我有一段代码需要重复计算以下内容......

        double consumption = minConsumption + ( Math.random() * ( ( maxConsumption - minConsumption ) + 1 ) );
        currentReading = currentReading.add( BigDecimal.valueOf( consumption ) ).setScale( 2, RoundingMode.HALF_EVEN ).stripTrailingZeros();
Run Code Online (Sandbox Code Playgroud)

这用于生成用于测试的随机信息.它看起来比我预期的要慢,我发现缓慢的部分是BigDecimal.valueOf( consumption )因为Double.toString()内部发生的呼叫而缓慢.

总体要求是生成在最小值和最大值之间随机的消耗值.然后将其添加到currentReading以获取新的读数.

有什么方法可以改善这个性能吗?也许通过避免双 - > BigDecimal转换.我需要将结果作为BigDecimal,但我不介意在此之前如何进行随机计算.

java floating-point performance bigdecimal value-of

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

REST超媒体/链接到集合

REST最佳实践的一部分是利用响应中的链接以允许客户端从一个实体导航到另一个实体.

例如,如果我有一个具有子帐户的客户对象类型.如果我要求客户使用,/customers/1那么我可能会提供以下回复

{
  "self": "http://localhost:43002/rest/v1/customers/1",
  "id": 1,
  "name": "Isabella Button",
  "number": "000001",
  "forename": "Isabella",
  "surname": "Button",
  "accounts": [
    {
      "self": "http://localhost:43002/rest/v1/accounts/1",
      "id": 1,
      "name": "Main Account",
      "number": "000001",
      "currency": "GBP",
      "fromDate": "2013-01-01",
      "toDate": "9999-01-01",
      "createdDttm": "2013-01-01T00:00:00.000"
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

请注意,self酒店保留了链接.

但是,假设我不想在客户查询中返回帐户,也许帐户数量可能非常大,所以我不想在默认情况下返回它们.

{
  "self": "http://localhost:43002/rest/v1/customers/1",
  "id": 1,
  "name": "Isabella Button",
  "number": "000001",
  "forename": "Isabella",
  "surname": "Button"
}
Run Code Online (Sandbox Code Playgroud)

客户帐户的资源URL可以是 /customers/1/accounts

但是,客户响应高于客户端将无法发现/customers/1/accounts链接.

是否有最佳做法在响应中提供指向返回资源的"子"集合的超链接?

java collections rest children url-design

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

是一个“原子”的 HTTP 请求

我知道 HTTP 请求将导致带有代码和可选正文的响应。

如果我们将请求的发起者称为“客户端”,而将请求的接收者称为“服务器”。

那么顺序是

  1. 客户端发送请求
  2. 服务器接收请求
  3. 服务器发送响应
  4. 客户端接收响应

服务器是否有可能完成第 3 步但第 4 步没有发生(由于连接断开、应用程序错误等)。

换句话说:服务器是否有可能“相信”客户端应该收到响应,但客户端由于某种原因没有收到?

http

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

SslStream缓慢取决于BufferedStream的包装

最近,我调试了使用SslStream的性能问题。

客户端是C#/。NET,并且具有以下Stream配置

  • 原始套接字/ NetStream
  • 被BufferedStream包装
  • 由SslStream包装
  • 用“协议”流包装(发送字节/整数/字符串等)

在通过互联网从客户端向服务器发送数据时,我看到了极其慢的性能,而在互联网上花费大量时间在客户端上序列化信息。

删除SSL流,连接速度加快到预期的水平。

然后我将上面的流配置更改为..

  • 原始套接字/ NetStream
  • 由SslStream包装
  • 用BufferedStream包装<-已将其移动
  • 用“协议”流包装(发送字节/整数/字符串等)

连接速度加快到预期水平。

有人可以解释为什么更改流配置对性能有很大帮助吗?特别是当我在与运行服务器的服务器相同的机器上测试了客户端的原始配置时?

.net c# performance ssl buffer

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