Tag: .net 4.5.2

使用全局exceptionhandeling搞砸了DelegatingHandler

当遍历IExceptionHandler时,当发生意外exception时,响应不会到达DelegatingHandler。 我怎样才能解决这个问题? 在webapi 2中,我想为请求和响应消息实现审计记录器。 我还想添加一个全局exception处理程序。 但是,当我用我的自定义实现替换IExceptionHandler时。 响应永远不会到达DelegatingHandler -onexception – 因此对响应的审计将丢失。 在WebApiConfig中 // add custom audittrail logger config.MessageHandlers.Add(new AuditLogHandler()); // replace global exception handeling config.Services.Replace(typeof(IExceptionHandler), new WebAPiExceptionHandler()); 自定义exception处理程序 public class WebAPiExceptionHandler : ExceptionHandler { //A basic DTO to return back to the caller with data about the error private class ErrorInformation { public string Message { […]

使用带有TryParse的if语句中的“使用未分配的局部变量”

我刚刚在VS2015 .Net v4.5.2控制台应用程序中键入以下代码: dynamic fromString = “blah”, toString = “blah2”; DateTime fromDate, toDate; if (DateTime.TryParse(fromString.ToString(), out fromDate) && DateTime.TryParse(toString.ToString(), out toDate)) { Console.WriteLine(fromDate); Console.WriteLine(toDate); } 出乎意料的是,我收到错误“使用未分配的局部变量toDate”。 我没想到它,因为只有在’toDate’被赋予第二个TryParse的值时才输入if语句。 不用说,可以通过为’toDate’赋值来解决它: DateTime fromDate, toDate = DateTime.MinValue; 或者将&&更改为&,以便无论第一次失败都执行两个TryPars。 但是,我想知道为什么会出现错误? 如果fromString和toString变量是字符串,则不会发生错误,并且编译器不会给出toDate未分配的错误。 因此我想知道为什么编译器对string和dynamic.ToString()不同?

Redis通过锁定分布增量

我需要生成一个计数器,它将被发送到一些api调用。 我的应用程序在多个节点上运行,所以我想要生成一个独特的计数器。 我试过以下代码 public static long GetTransactionCountForUser(int telcoId) { long valreturn = 0; string key = “TelcoId:” + telcoId + “:Sequence”; if (Muxer != null && Muxer.IsConnected && (Muxer.GetDatabase()) != null) { IDatabase db = Muxer.GetDatabase(); var val = db.StringGet(key); int maxVal = 999; if (Convert.ToInt32(val) < maxVal) { valreturn = db.StringIncrement(key); } else { […]