小编hex*_*tor的帖子

序列化UTC时间c#

我在datacontract中有一个DateTime数据库.默认情况下,datacontractserializer将UTC时间序列化为yyyy-MM-ddTHH:mm:ss.fffffffZ格式化.我需要它的yyyy-MM-ddTHH:mm:ss.000Z格式,但无法控制数据交换.那么我可以用DataContractSerializer做什么,它会以我想要的格式给我UTC时间.谢谢

c# datetime string-formatting datacontractserializer

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

当按下回车键时,VS代码将光标移动到下一行的开头

当按 Enter 键时,光标会移动到新行的开头,而不是考虑当前块的缩进级别。

          {
             "name": "foo",
|
          }
Run Code Online (Sandbox Code Playgroud)

光标应跳到与name按键相同的级别。

即使使用空花括号也会发生这种情况。

          {|}
Run Code Online (Sandbox Code Playgroud)

enter

          {
|} 
Run Code Online (Sandbox Code Playgroud)

似乎没有可以设置的设置,因此光标只能跳转到当前的缩进级别。

visual-studio-code

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

在等待的任务上使用 ContinueWith() 并在内部调用 Task.Result

我遇到了以下使用 ContinueWith() 等待结果的代码。

public async Task<User> GetUser()
{
    return await _serviceRepo.GetUserAsync()
       .ContinueWith(task => 
       {
           return task.Result;
       });
}
Run Code Online (Sandbox Code Playgroud)

是否ContinueWith()阻塞调用线程直到任务从GetUserAsync()调用返回?

由于 位于task.Result已安排的 ContinueWith() 内,在等待前件时task是否有任何内容被阻止?

我在其他几个地方看到过这种类型的代码,这被认为是异步/等待模式的最佳实践吗?我希望GetUserAsync()调用返回结果而不是使用 aContinueWith()来等待它。

c# task task-parallel-library async-await continuewith

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

如何对 Refit ApiResponse&lt;T&gt; 进行单元测试?

我使用 refit 来调用 API,并将响应封装在ApiResonse<T>. 我可以模拟返回模拟ApiResponse<T>和断言的 refit 调用。一切都按预期工作,只是我不确定如何测试返回异常的 api 调用。

[Get("/customer/{id}")]
Task<ApiResponse<Customer>> GetCustomer(int id);
Run Code Online (Sandbox Code Playgroud)

看来如果ApiResponse<T>使用 Refit 将请求内发生的所有异常包装ApiException到并附加到ApiResponse<T>. 如果Task<T>改为使用 ,则ApiException调用者有责任捕获 。

我创建了ApiExceptionwithApiException.Create()但不确定将其放在哪里ApiResponse<T>。该方法的最后一个参数Create()是 ApiException,但我创建和设置的异常根本没有显示在 ApiResponse 中,因此无法测试。

var apiResponse = new ApiResponse<Customer>(
    new HttpResponseMessage(BadRequest),
    null,
    null,
    await ApiException.Create(,,,Exception("Something bad happened inside the api")
 );
Run Code Online (Sandbox Code Playgroud)

我无法Something bad happened...在单元测试中收到消息,只能收到“错误请求”消息。我是否在改装中对 ApiResponse 进行单元测试?任何帮助是极大的赞赏。谢谢

c# rest unit-testing refit

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

什么是 PGP 密钥?

我正在开发一个 C# 应用程序,它使用由 Bouncy Castle (BC) 库实现的 PGP 加密/解密消息。我知道 PKI,但 PGP 中的密钥让我有点失望。我查看了 BC 示例/源代码和 PGP RFC,但提出了更多问题。

是 Secretkey == Session 密钥吗?

Secretkey == 对称密钥吗?

Secretkey == 私钥(pub/priv 密钥对)吗?至少以下内容似乎表明密钥是私钥。

internal static PgpPrivateKey FindSecretKey(PgpSecretKeyRingBundle pgpSec, long keyID, char[] pass)
Run Code Online (Sandbox Code Playgroud)

RFC 说密钥包含有关公钥的信息,或者可能是公钥本身(至少这是我的阅读)。

另外,我在某处读到的 Secretkey 基本上是一个密码加密的私钥。

何时/为什么我需要 PGP 协议中的密钥?签名还是加密?

谢谢

encryption cryptography bouncycastle pgp secret-key

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