小编Und*_*ade的帖子

try catch块中的"when"关键字与if语句相同吗?

在C#6.0中引入了"when"关键字,现在您可以在catch块中过滤异常.但是这不同于catch块中的if语句吗?如果是这样,是不是只是语法糖或我错过了什么?

例如,带有"when"关键字的try catch块:

try { … } 
catch (WebException ex) when ex.Status == WebExceptionStatus.Timeout {
   //do something
}
catch (WebException ex) when ex.Status== WebExceptionStatus.SendFailure {
   //do something
}
catch (Exception caught) {…}
Run Code Online (Sandbox Code Playgroud)

要么

try { … } 
catch (WebException ex) {
   if(ex.Status == WebExceptionStatus.Timeout) {
      //do something
   }
}
catch (WebException ex) {
   if(ex.Status == WebExceptionStatus.SendFailure) {
      //do something
   }
}
catch (Exception caught) {…}
Run Code Online (Sandbox Code Playgroud)

c# try-catch c#-6.0

56
推荐指数
3
解决办法
4842
查看次数

Microsoft Fakes in .NET Core的替代品吗?

我正在寻找Microsoft Fakes in .NET Core的替代方案.我知道.NET Core不再支持它.我只是不明白为什么不,我认为这在某些情况下是一个很好的解决方案.

我的问题是我想模拟DateTime.Now.以前您可以使用以下代码执行此操作:

System.Fakes.ShimDateTime.NowGet = () => 
{ 
   return new DateTime(2000, 1, 1); 
};
Run Code Online (Sandbox Code Playgroud)

有关详细信息,请参阅Microsoft文档中的链接:https://docs.microsoft.com/en-us/visualstudio/test/using-shims-to-isolate-your-application-from-other-assemblies -用于单元测试?视图= VS-2017

现在我通过为DateTime创建一个包装器来解决它,如下所示:

/// <summary>
/// Used for getting DateTime.Now(), time is changeable for unit testing
/// </summary>
public static class SystemTime
{
   /// <summary> 
   /// Normally this is a pass-through to DateTime.Now, but it can be 
   /// overridden with SetDateTime( .. ) for testing or debugging.
   /// </summary>
   public static Func<DateTime> Now = () => DateTime.Now;

   /// …
Run Code Online (Sandbox Code Playgroud)

c# microsoft-fakes .net-core

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

如何在没有 ASP.NET 模型验证的情况下在 Swagger 中根据需要标记属性?

我正在创建一个使用多个私有 API 的公共 API(无法从外部访问)。已经为私有 API 编写了业务验证,我不想为公共 API 重新编写它们。但我确实希望 swagger 文档是相同的。

这就是为什么我想知道是否可以将属性标记为强制属性,而不使用 ASP.NET 的 Required 属性。但是 swagger 文档表明它是强制性的。这可能吗?

c# asp.net swagger

5
推荐指数
2
解决办法
3555
查看次数

Angular CLI (7.0.5) 用于开发和生产的不同资产?

是否可以使用 Angular CLI (7.0.5) 为开发和生产提供不同的资产?

对于生产,我想要资产:

"assets": [
   "projects/example/src/favicon.ico"
]
Run Code Online (Sandbox Code Playgroud)

对于开发,我想要资产:

"assets": [
   "projects/example/src/favicon.ico",
   "projects/example/src/assets/development.css"
]
Run Code Online (Sandbox Code Playgroud)

先感谢您。

angular-cli angular

5
推荐指数
2
解决办法
2838
查看次数