小编Tim*_*hko的帖子

ExpectedException xunit .net核心

我正在为核心应用程序编写单元测试.我试图检查,我的班级抛出异常.但是ExpectedException属性会抛出编译异常:

错误CS0246找不到类型或命名空间名称'ExpectedException'(您是否缺少using指令或程序集引用?)EventMessagesBroker.Logic.UnitTests..NETCoreApp,Version = v1.0

我的代码:

[Fact]
[ExpectedException(typeof(MessageTypeParserException))]
public void TestMethod1_Error_twoMathces()
{
    var message = "some text";
    var parser = new MessageTypeParser();
    var type = parser.GetType(message);
    Assert.Equal(MessageType.RaschetStavkiZaNalichnye, type);
}
Run Code Online (Sandbox Code Playgroud)

那么,有没有正确的方法来实现这一目标?

unit-testing xunit xunit.net .net-core asp.net-core

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

配置 .net 核心日志记录以记录请求和响应

我正在开发asp .net core 2.1 WEB-API 应用程序。

我将 ILogger 与配置一起使用:

"Logging": {
"LogLevel": {
  "Default": "Debug",
  "System": "Information",
  "Microsoft": "Information"
}
Run Code Online (Sandbox Code Playgroud)

并应要求我看到日志:

信息:Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker[1] 使用参数 (ActivationService.Contracts.ActivationRequest) 执行操作方法 ActivationService.Controllers.ActivationController.Post (ActivationService) - 验证状态:有效

执行操作方法 ActivationService.Controllers.ActivationController.Post (ActivationService),在 174605.9201 毫秒内返回结果 Microsoft.AspNetCore.Mvc.ObjectResult。

有没有办法配置asp.net来记录响应和请求的跟踪主体

.net logging asp.net-web-api asp.net-core

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

RestSharp.RestClient忽略超时

我正在使用RestSharp.RestClient(105.2.4-rc4-24214-01)开发.net核心应用程序.我设置

RestClient.Timeout=1 
Run Code Online (Sandbox Code Playgroud)

要么

RestClient.Timeout=10000
Run Code Online (Sandbox Code Playgroud)

然后调用我的测试API

var tcs = new TaskCompletionSource<IRestResponse>();
RestClient.ExecuteAsync(request, response => { tcs.SetResult(response); })
return tcs.Task.Result;
Run Code Online (Sandbox Code Playgroud)

但它仍然使用默认值100000并生成"任务被取消".异常仅在100000毫秒之后.

我怎样才能改变这个值?

.net timeout restsharp asp.net-core

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

ASP.NET Core路由前缀

我正在开发一个ASP.NET Core应用程序。我的应用程序在url上托管了NGinx http://somedomain.com/MyApplication

我需要将所有请求路由到prefix /MyApplication

我的控制器动作响应问题重定向到somedomain.com,而不是somedomain.com/MyApplication

有什么方法可以配置路由以使用前缀/MyApplication

UPD:例如

        [HttpGet]
        [AllowAnonymous]
        public async Task<IActionResult> Login(string returnUrl = null)
        {
            // Clear the existing external cookie to ensure a clean login process
            await HttpContext.SignOutAsync(IdentityConstants.ExternalScheme);

            ViewData["ReturnUrl"] = returnUrl;
            return View();
        }
Run Code Online (Sandbox Code Playgroud)

重定向到somedomain.com,但我需要somesome.com/MyApplication

.net c# routing asp.net-core

6
推荐指数
2
解决办法
607
查看次数

XmlSerializer extraTypes 内存泄漏

我正在开发一些应用程序,它使用 extraTypes 参数调用大量 XmlSerializer 构造函数。我发现,每次调用都会增加大约 100KB 的应用程序内存和 2 个描述符(有时更多)。代码示例:

此代码将应用程序内存增加 100KB,每次调用增加 2 个处理程序

while (true)
            {
                Console.ReadLine();
                new XmlSerializer(typeof (object), new Type[] {});
            }
Run Code Online (Sandbox Code Playgroud)

此代码增加了 43024KB 和 2004 个处理程序的应用程序内存

 for (var i = 0; i < 1000; i++)
            {
                new XmlSerializer(typeof (object), new Type[] {});
            }
Run Code Online (Sandbox Code Playgroud)

这只是控制台应用程序最简单的示例:

internal class Program
    {
        private static void Main(string[] args)
        {
            //this code encrease application memory for 43024KB and 2004 handlers
            for (var i = 0; i < 1000; i++)
            {
                new XmlSerializer(typeof (object), …
Run Code Online (Sandbox Code Playgroud)

.net c# memory-leaks xmlserializer

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

WebApi Odata:从响应中删除元数据

我正在开发供内部使用的 WebApi Odata 服务。我想从服务器的响应中删除除序列化数据之外的所有其他数据。我想删除所有这些东西:

{
  "@odata.context":"http://192.168.150.86:9933/odata/$metadata#Terminal","value":[

  ]
}
Run Code Online (Sandbox Code Playgroud)

并只留下“终端”数组

有没有办法做到这一点?

odata asp.net-web-api

4
推荐指数
2
解决办法
6741
查看次数

向Unix时间解释毫秒

我试图找到更好的方法将C#中的DateTime转换为Unix时间戳

我发现有一个DateTimeOffset.ToUnixTimeMilliseconds方法:

public long ToUnixTimeMilliseconds()
{
   return this.UtcDateTime.Ticks / 10000L - 62135596800000L;
}
Run Code Online (Sandbox Code Playgroud)

这个方法是什么意思?使用了哪些常量

UPD:我想10000L从FRAME转换为毫秒。但是62135596800000L呢?

c# datetime unix-timestamp

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