小编liv*_*ve2的帖子

WCF客户端"使用"块问题的最佳解决方法是什么?

我喜欢在using块中实例化我的WCF服务客户端,因为它几乎是使用实现的资源的标准方法IDisposable:

using (var client = new SomeWCFServiceClient()) 
{
    //Do something with the client 
}
Run Code Online (Sandbox Code Playgroud)

但是,正如本MSDN文章中所述,在using块中包装WCF客户端可能会掩盖导致客户端处于故障状态的任何错误(如超时或通信问题).简而言之,当调用Dispose()时,客户端的Close()方法会触发,但会因为处于故障状态而抛出错误.然后,第二个异常掩盖了原始异常.不好.

MSDN文章中建议的解决方法是完全避免使用using块,而是实例化您的客户端并使用它们,如下所示:

try
{
    ...
    client.Close();
}
catch (CommunicationException e)
{
    ...
    client.Abort();
}
catch (TimeoutException e)
{
    ...
    client.Abort();
}
catch (Exception e)
{
    ...
    client.Abort();
    throw;
}
Run Code Online (Sandbox Code Playgroud)

using块相比,我认为这很难看.每次需要客户端时都需要编写很多代码.

幸运的是,我发现了一些其他的解决方法,例如IServiceOriented上的这个.你从:

public delegate void UseServiceDelegate<T>(T proxy); 

public static class Service<T> 
{ 
    public static ChannelFactory<T> _channelFactory = new ChannelFactory<T>(""); 

    public static void Use(UseServiceDelegate<T> codeBlock) 
    { …
Run Code Online (Sandbox Code Playgroud)

c# vb.net wcf using wcf-client

400
推荐指数
10
解决办法
11万
查看次数

How to change the playing speed of videos in HTML5?

How to change the video play speed in HTML5? I've checked video tag's attributes in w3school but couldn't approach that.Any help would be appreciated!

javascript video performance html5 html5-video

106
推荐指数
5
解决办法
11万
查看次数

是否有全面的公共/银行假期的API或JSON/XML列表?

当我构建一个包含日历作为其功能之一并且可以在全世界使用的Web应用程序时,作为对用户的一种了解,我希望他们能够轻松地包含他们的本地假期.理想情况下,我只想存储他们的国家/地区并从API中提取列表.

理想的是API可根据要求返回给定年份和国家的银行假期.

到目前为止我发现了什么:

wikipedia.org - 假日国家/地区列表

  • 不错的名单,可能是一个噩梦,可以在接下来的几年里搜索和编译成计算机可读列表.

bank-holidays.com

  • 商业供应商似乎拥有一切,尽管对更新后的Feed的定价尚不清楚.还没回复我的电子邮件.公开可用的pricepoint是250EUR,但每次下载/更新.

Google日历列表

例如en.german%23holiday@group.v.calendar.google.com看起来不错,并不总是完全是最新的,不确定是否可以使用该信息.

谷歌支持的国家:澳大利亚,奥地利,巴西,柬埔寨,加拿大,中国,基督教,丹麦,荷兰,芬兰,法国,德国,希腊,香港(C),香港,印度,印度尼西亚,伊朗,爱尔兰,伊斯兰,意大利,日本,犹太,马来西亚,墨西哥,新西兰,挪威,菲律宾,波兰,葡萄牙,俄罗斯,新加坡,南非,韩国,西班牙,瑞典,台湾,泰国,英国,美国和越南假期

api calendar

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

以编程方式管理 Windows 防火墙

我正在尝试以编程方式创建出站 Windows 防火墙规则。此外,我想以编程方式启用和禁用此规则。我怎样才能在 C# 中做到这一点?手动,我可以通过进入控制面板,单击 Windows 防火墙,然后单击高级设置来执行此操作。

c# windows-firewall

10
推荐指数
3
解决办法
7736
查看次数

用C#检测摄像机图像中的对象

我有一个从现场网络摄像头拍摄的图像,我希望能够检测图像中的特定对象并提取其中的一部分以进行进一步处理.

具体来说,图像将是一个游戏板,让我们说这个问题的目的是它是一个数独游戏板.

我最初的方法是寻找对比区域,并从那里开始研究,但我似乎最终有很多潜在的边缘(很多错误),并没有真正的线索,如何找出哪些是我真正想要的!

是否有任何算法,库,代码示例,甚至是那些明智的想法,关于我如何寻找和提取图像的相关部分?

.net c# image-processing edge-detection

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

无法理解 flac 帧头格式

我正在做一种 flac 解析器,我需要解析每个帧的标头。有一个字段以 flac 格式描述(https://xiph.org/flac/format.html#frame_header

if(variable blocksize) <8-56>:"UTF-8" 编码样本数 (解码数为 36 位) [4] else <8-48>:"UTF-8" 编码帧数 (解码数为 31 位) )[4]

[4] 说:

用于样本/帧编号的“UTF-8”编码与用于存储压缩的 UCS-2 的可变长度代码相同,经过扩展以处理更大的输入。

我完全不明白如果这个字段是 8-56 或 8-48 位,我该如何知道它的大小。那么为什么解码后的数字是36或31位呢?另外,当我在十六进制编辑器中使用 UTF-8 编码打开 flac 文件时,该字段中没有数字。我将非常感谢任何帮助。

audio decode frame flac

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

简单注入器-使用一个自定义参数注册服务

我尝试使用自定义参数“服务器”注册通信服务。但我想自动解决ILogger依赖关系,而不要两次设置此依赖关系。

最好的方法是什么?

SimpleInjector寄存器

var diContainer = new Container();
diContainer.Register<ILogger, DefaultLogger>();
//Good
diContainer.Register<ICommunicationService>(
    () => new CommunicationService("server1"), 
    Lifestyle.Singleton);
//Bad
diContainer.Register<ICommunicationService>(
    () => new CommunicationService(new DefaultLogger(), "server1"),
    Lifestyle.Singleton);
Run Code Online (Sandbox Code Playgroud)

CommunicationService类别

public class CommunicationService : ICommunicationService
{
    public CommunicationService(ILogger logger, string server)
    {
    }
}
Run Code Online (Sandbox Code Playgroud)

更新2017-11-27

@Steven我要运行两个CommunicationService具有不同配置的实例。在我的示例中server1和server2。

var container = new Container();
container.Register<ILogger, DefaultLogger>();
container.RegisterSingleton(new CommunicationServiceConfig { Server = "server1" });
container.RegisterSingleton(new CommunicationServiceConfig { Server = "server2" });

diContainer.Register<ICommunicationService, CommunicationService>(Lifestyle.Singleton);
diContainer.Register<ICommunicationService, CommunicationService>(Lifestyle.Singleton);
Run Code Online (Sandbox Code Playgroud)

c# dependency-injection ioc-container simple-injector

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

AWS S3 doObjectExist 成本

AWS S3 Java SDK 提供了一种方法doesObjectExist()来检查对象是否存在于 S3 中。它内部使用什么操作?是GET, LIST, 还是HEAD?

我的担忧主要与它的成本有关。根据 S3 文档,美国西俄勒冈州的成本是 - PUT、COPY、POST 或 LIST 请求每 1,000 个请求 $0.005

GET、SELECT 和所有其他请求每 1,000 个请求 $0.0004

成本doesObjectExist()属于第一类还是第二类?此外,我正在阅读此操作需要ListBucketGetObject权限的地方。那么这是否意味着此操作会产生上述两种类型的成本?

java amazon-s3 amazon-web-services aws-sdk

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

C#将字节解析为struct sequential

我尝试解析一个字节数组到struct但它不能用于Sequential.Sequential结构中的值是错误的,但它与Explicit结构一致吗?我需要顺序字节数组没有固定长度.DwLength字段是数据字段的大小.

  • MessageType 128(顺序128)
  • DwLength 20(顺序33554432)
  • 插槽0(顺序0)
  • Seq 0(顺序0)
  • 状态2(顺序59)
  • 错误0(顺序143)
  • ChainParameter 0(顺序128)

测试代码

var bytes = new byte[] { 0x80, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x3B, 0x8F, 0x80, 0x01, 0x80, 0x4F, 0x0C, 0xA0, 0x00, 0x00, 0x03, 0x06, 0x03, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x68 };

var result1 = GetStruct<RdrToPcDataBlock1>(bytes);
var result2 = GetStruct<RdrToPcDataBlock2>(bytes);
Run Code Online (Sandbox Code Playgroud)

struct RdrToPcDataBlock顺序

[StructLayout(LayoutKind.Sequential)]
public struct RdrToPcDataBlock1
{
    public byte MessageType;
    public int DwLength;
    public byte Slot;
    public byte Seq;
    public byte …
Run Code Online (Sandbox Code Playgroud)

c# arrays struct

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

如何绘制日期和月份

我有一张每日趋势图表。

随着时间的推移价格

年份在这里不相关,我只想显示日期和月份。我知道你可以显示年和月,但事实并非如此。

我尝试创建一个名为“Day_Month”的新变量:

import datetime as dt
df['Day'] =  df['date'].dt.day
df['Month'] =  df['date'].dt.month
df['Day_Month'] = df['Day'].astype(str) + "-" + 
Run Code Online (Sandbox Code Playgroud)

但无法将其绘制为字符串,也无法将其转换为日期类型。

最终,我希望我的图表如下所示:

最终价格图表

python date matplotlib dataframe

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

C# Parallel.ForEach 和 Task.WhenAll 有时返回的值比假设的要少

我有这个:

Parallel.ForEach(numbers, (number) =>
{
    var value = Regex.Replace(number, @"\s+", "%20");

    tasks.Add(client.GetAsync(url + value));
});

await Task.WhenAll(tasks).ConfigureAwait(false);

foreach (var task in tasks)
{
  ...
}
Run Code Online (Sandbox Code Playgroud)

有时在到达 foreach(任务中的 var 任务)时返回较少的任务,但在几次请求后,开始返回所有任务。

我已将 ConfigureAwait 更改为 true,但有时仍会返回较少的任务。

顺便说一句,我使用 Parallel.ForEach,因为每个 client.GetAsync(url + value) 都是对外部 api 的请求,其特殊性在于其 99% 的请求的延迟 SLA 低于 1s

你们能解释一下为什么它有时会返回较少的任务吗?

有没有办法保证总是返回所有任务?

谢谢

c# task async-await parallel-foreach configureawait

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

Vue.js如何绑定html5视频元素的playbackRate?

如何绑定html5视频元素的playbackRate?不带getElementById的vuejs是否可以直接实现?

//Example of plain javascript
var vid = document.getElementById("myVideo");
vid.playbackRate = 0.5;
Run Code Online (Sandbox Code Playgroud)

video html5 vue.js

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

“Array”不包含“OrderBy”的定义

我有一个 Jobs 数组,但是我遇到了 JobName 数组为我提供错误的问题Array does not contain a definition for OrderBy。我必须做什么才能将 OrderBy 与数组一起使用?

c# arrays

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