![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C#开发
文章平均质量分 80
yan_ncwu
这个作者很懒,什么都没留下…
展开
-
MVC.NET 中异常的捕获和判断
首先,写Exception类的extensionspublic static string ToStrings(this Exception ex) { if (ex == null) { return string.Empty; } var res...原创 2019-02-22 23:17:05 · 399 阅读 · 0 评论 -
将Dictionary转换成为Dynamic对象
经常,我们需要一些临时的对象,这些对象无法预先定义,也很难用Dynamic类型来生成,而是存储为Dictionary格式。这时,我们可以使用ExpandoObject来生成动态对象。代码如下:public static dynamic ToDynamic(IDictionary<string, object> dict) { dynamic...原创 2019-03-26 11:38:25 · 3338 阅读 · 0 评论 -
将Dictionary转换成为指定类型的对象
一些时候,我们需要将字段转换成为一种指定类型的对象,这时候,可以使用C#中的反射来完成。但是也可以通过JSON的数据格式来完成。如 public static T ToObject<T>(this IDictionary<string, object> dict) { var json = JsonConvert.Seriali...原创 2019-03-26 11:42:55 · 2787 阅读 · 0 评论 -
截获HttpPost传送的数据
经常,我们需要截获HttpPost传送给后台的参数和参数的格式。这个时候,我们可以使用public static string ReadRequestParams(this HttpRequest request) { var stream = request.InputStream; stream.Seek(0, SeekOr...原创 2019-03-26 11:47:08 · 1215 阅读 · 0 评论 -
c#中百分位值的计算
在程序中,我们经常需要计算一个series的某个百分位数据,如50%分位(中值),25%和75%分位等。在R和Python 中往往有现成的程序,在C#中,我们可以计算为: public static double Percentile(IEnumerable<double> seq, double percentile) { var ele...原创 2019-04-22 21:08:57 · 2052 阅读 · 1 评论 -
C#中 dynamic 和JOject的转换
dynamic作为C#中引入的动态类型,可以为软件的开发增加很多柔性,但是其动态绑定,不在编译时检查的特征,也为软件带来了很多的隐患。恰当地利用dynamic,可以为简化程序的开发。在这里,我们讨论Json,JObject和dynamic类型的转换和使用。如var josn = @“{'name':'Jon Skeet', 'address’...原创 2019-05-04 11:18:01 · 2241 阅读 · 0 评论 -
MVC.NET中UpLoadHelper的实现
在MVC.NET中,我们经常需要上载文件,放到服务器的指定文件夹下,可以设计 UploadHelper静态类如下public static class UpLoadHelper { public static void CreateDirIfNotExist(string dir) { var path = Hosting...原创 2019-05-11 19:26:16 · 201 阅读 · 0 评论 -
HTTPRequest中的Client IP地址
如何通过HTTPRequest, 得到客户请求的IP地址,本身并不是一个复杂的问题。但是由于代理、NAT、路由转换等,导致系统变得复杂。目前可用的解决方法为: public static class WebRequestHelper { public static string GetUserAgent() { return H...原创 2019-05-17 15:47:31 · 7523 阅读 · 0 评论 -
MVC.NET HttpRequst的Post对象反序
在HTTP Post中,多数对象可以放在Form中提交给服务器,在MVC.NET中,可以使用 public static NameValueCollection ReadRequestParams(this HttpRequestBase request) { return request.Form; }得到json格式的对象,然...原创 2019-05-27 21:08:36 · 168 阅读 · 0 评论 -
.NET Core中根据数据库模型生成代码
在.NET Core中,如果采用DB First方式,可以使用Scaffold-DbContext 生成程序模型,方式为:Scaffold-DbContext -Connection "Server= xxx.xxx.xxx.xxx;Database = xx; Integrated Security = False; User ID = ; Password = " -Provider "M...原创 2019-06-29 00:05:04 · 1837 阅读 · 0 评论 -
HttpContext的辅助类
HttpContext是MVC.NET 和 .NET Core的基础,可以编写其辅助类如下public static class HttpContextHelper { private const string UserName = "UserName"; public static string GetFormString(this HttpCont...原创 2019-06-29 11:25:57 · 447 阅读 · 0 评论 -
关于Repository模式的一些思考
现代软件开发中,多使用了ORM将关系型数据库系统映射到对象,并通过ORM实现对数据库的CRUD操作。而Repository模式作为对数据库CRUD操作的封装,其存在的合理性就有了不少的争议。部分人员觉得引入Repository模式没有存在的必要,其引入回故意导致软件的复杂化。但是,在大型软件系统中引入Repository,有其合理和必要性的一面。主要原因有:1. 对上层的业务逻辑层,提供了...原创 2019-02-16 22:19:27 · 610 阅读 · 0 评论 -
软件的基本体系框架
C# Web API基本的软件体系框架原创 2019-02-16 23:01:18 · 534 阅读 · 0 评论 -
MapperFactory静态类的使用
有了MapperFactory,我们定义从TSource类对象向TDest类对象转换规则时,就可以直接使用public class ViewUserModel { public string Id { get; set; } public string YHM { get; set; } public string MM { get; s...原创 2019-03-02 23:13:02 · 622 阅读 · 0 评论 -
MapperFactory的实现及应用
基于前述的Mapper类,我们可以定义静态的 Mapper工厂类MapperFactory如下public static class MapperFactory { private static readonly IDictionary<KeyValuePair<Type, Type>, Mapper> Dictionary =...原创 2019-03-02 23:08:51 · 2527 阅读 · 0 评论 -
基于Action的Mapper类实现
目前,常用的对象转换框架为AutoMapper,但是我们可以使用C#的Action模板定义自己的Mapper类,实现从TSource类对象向TDest类对象的转化,如public class Mapper<TSource, TDest> : Mapper where TDest: class, new() { private readonly Propert...原创 2019-03-02 23:07:29 · 358 阅读 · 0 评论 -
基于NPOI 的Excel文件读取
在.NET的应用中,包括 MVC.NET和.NETcore,经产需要读取Excel文件。目前常用的方法中最重要的是使用NPOI来完成。我们可以定义一个ExcelHelper类完成Excel文件的读取,方法如下public static class ExcelProcessor { public static IEnumerable<T> ExcelTo...原创 2019-02-24 15:44:21 · 1391 阅读 · 0 评论 -
DbContext中获取修改Entity,生成修改数据的List
在DbContext的ChangeTracker中,可以通过Entries方法获取所有修改的数据,然后形成一个数据的List, 方法如下public static class ContextHelper { public static IEnumerable<DbEntityEntry> GetChangedEntries(this DbContext c...原创 2019-02-22 13:57:36 · 1052 阅读 · 0 评论 -
CookieHelper的创建和使用
在很多MVC.NET项目中,我们需要创建和管理Cookie,可以定义CookieHelper类如下:public static class CookieHelper { private static string UserName = "UserName"; public static void Clear(string cookieName)...原创 2019-02-21 12:45:16 · 654 阅读 · 0 评论 -
MVC.NET 中二维码的生成
使用 QRCoder 模块using QRCoder然后定义public static class QRCodeHelper { //生成二维码,大小为41 * pixelsPerModule public static byte[] CreateValidateImage(string info, int pixelsPerModule = ...原创 2019-02-17 22:58:40 · 735 阅读 · 0 评论 -
MVC.NET 中验证码的生成和使用
在MVC.NET中,我们可以用如下的方法生成验证码:public static class VCodeHelper { public static int FontSize = 12; public static int Height = 22; public static string CreateValidateCode(int l...原创 2019-02-17 22:31:03 · 486 阅读 · 0 评论 -
AutoMapper 8.0的应用--动态配置
AutoMapper 8.0中,需要使用configure来配置mapper。为此,实现动态的类型配置如下 public static class AutoMapHelper { private static bool ConfigExist(Type srcType, Type destType) { return Mappe...原创 2019-02-17 12:32:07 · 2110 阅读 · 6 评论 -
C#中MemoryCache的使用
在C#开发的系统中,常常需要对数据进行缓冲,这时候就可以利用MemoryCache了。它在System.Runtime.Caching名空间中。可以设计CacheHelper类来完成对其的管理。方法如下:public static class CacheHelper { public static void Set(string key, object obj, int...原创 2019-02-16 23:05:36 · 13750 阅读 · 2 评论 -
Swagger in Asp.NET Core
首先,使用NuGet安装 SwashBuckle.AspNetCore然后,在StartUp的ConfigureServices中,加入 Services.AddSwaggerGen(c=>{c.SwaggerDoc("V1", new Info("Services API", Version="V1")};然后,在Configure中,加入 app.UseSwagger...原创 2019-06-29 20:01:26 · 207 阅读 · 0 评论