我正在为核心应用程序编写单元测试.我试图检查,我的班级抛出异常.但是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)
那么,有没有正确的方法来实现这一目标?
我正在开发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来记录响应和请求的跟踪主体?
我正在使用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毫秒之后.
我怎样才能改变这个值?
我正在开发一个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
我正在开发一些应用程序,它使用 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) 我正在开发供内部使用的 WebApi Odata 服务。我想从服务器的响应中删除除序列化数据之外的所有其他数据。我想删除所有这些东西:
{
"@odata.context":"http://192.168.150.86:9933/odata/$metadata#Terminal","value":[
]
}
Run Code Online (Sandbox Code Playgroud)
并只留下“终端”数组
有没有办法做到这一点?
我试图找到更好的方法将C#中的DateTime转换为Unix时间戳
我发现有一个DateTimeOffset.ToUnixTimeMilliseconds方法:
public long ToUnixTimeMilliseconds()
{
return this.UtcDateTime.Ticks / 10000L - 62135596800000L;
}
Run Code Online (Sandbox Code Playgroud)
这个方法是什么意思?使用了哪些常量?
UPD:我想10000L从FRAME转换为毫秒。但是62135596800000L呢?
.net ×4
asp.net-core ×4
c# ×3
.net-core ×1
datetime ×1
logging ×1
memory-leaks ×1
odata ×1
restsharp ×1
routing ×1
timeout ×1
unit-testing ×1
xunit ×1
xunit.net ×1