自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(76)
  • 资源 (3)
  • 收藏
  • 关注

原创 .Net Core 5 WebApi 项目下静态文件展示

最近用api做了一个上传图片接口,文件上传到项目根目录的Upload文件夹了,但是通过url怎么也访问不到图片是因为api默认是不支持静态文件的需要在Startup中添加如下配置才能做到这个是添加自定义目录的,亲测有效app.UseStaticFiles(); //自定义目录 string filepath = System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, ".

2021-01-01 16:53:03 4033 5

原创 .Net Core 500.37 ANCM Failed to Start Within Startup Time Limit 错误解决方案

今天在发布自己做的项目到服务器的时候,发现iis中浏览项目会加载很长时间,然后报错百度了很久没有找到解决方案最后发现,原来是因为自己在Startup里面加了一个方法,长时间占用主线程造成的,很低级的错误,用一个新线程去单独处理这个方法就好了...

2021-01-01 11:57:54 3661

原创 Lucene.net+盘古分词:如何做到按需分词,新增盘古分词词库

最近做了一个小商城,用到了Lucene+盘古,但是发现,盘古的默认分词词库不够全,有很多词都没有分到位,为了这个,研究了一上午,做记录如下第一步:设置词库自己可以把自己想要词写成一个txt保存起来,我因为做的是淘宝商品类的检索,所以我直接在搜狗词库里面检索到了阿里巴巴的所有词库,直接通过工具转换成了txt格式的第二步:通过盘古DictManage.exe设置要添加的词第三步:添加P

2017-05-09 14:43:41 4321

原创 IOC Unity

IOC的功能就是类似于简单工厂+配置文件 创建对象的效果差不多,只不过功能比之强大不少,慢慢往下看吧IOS特点1、控制反转:把对象的创建交给第三方容器来做2、依赖注入:是一种具体的手段,注入的对象并不是我们自己主动创建的,而是容器创建的注入的方式分为3种:1、属性注入:直接在属性上加上[Dependency] 在容器创建该实例的时候,会自动赋值2、方法注入:方法上添

2017-04-08 10:24:34 532

原创 通过Unity实现 AOP

需要添加引用添加命名空间using Microsoft.Practices.Unity.InterceptionExtension;using Microsoft.Practices.Unity;下面方法public class UnityDemo { public static void Show() {

2017-02-25 17:45:00 3915

原创 通过特性+反射 实现对属性int值范围的检测

public class IntCheckAttribute : Attribute { private int _Min = 0; private int _Max = 100; public IntCheckAttribute(int min, int max) { this._Min = min

2017-02-25 14:57:45 535

原创 数据库设计 一对多 多对多 无限级菜单 设计方法

设计规范1、每一个列保持一个原子性,字段不可再划分2、一个物体描述信息一个表存完3、每一个字段都是跟主键直接相关的,一条数据只存一次一对多 如下通过ID 进行关联多对多 如下通过中间表(映射表)进行关联无限级菜单name:菜单名称parentId:上级菜单的ID  也就是这个表里面的IDlevelNum:菜单等级

2017-02-25 09:57:00 14412 1

原创 Attribute 创建 作用 如何使用

创建public class HellowAttribute:Attribute { public int ID { get; set; } public string Name { get; set; } public void SayHi() { Console.WriteLine("Hi"

2017-02-24 10:25:59 523

原创 Parallel 线程

Parallel1、就是对Task基础上封装多个任务,并行计算,主线程也会执行其中一个委托,本质就是Task+WaitAll2、计算全部完成后才会进入下一行代码3、看上去就是同步编程4、一个亮点是可以控制同时使用的线程数量,多余任务会等待前面任务执行完之后,用空余线程执行直接上代码了 try { Console

2017-02-18 16:32:38 556

原创 Sql Server 插入数据的同时返回插入数据的ID/主键信息

Sql Server 插入数据的同时返回插入数据的ID/主键信息

2017-02-18 16:15:49 3961

原创 Task 异常处理 线程取消 局部变量问题

先来一个局部变量的问题 如下面代码 for (int i = 0; i < 10; i++) { Task.Run(new Action(() => { Console.WriteLine(i); }));

2017-02-13 17:15:20 2754

原创 Task async/await

1、只有async没有await 会报警告,并当做普通方法执行2、await后面的内容会被当做是该Task的回调进行执行3、 返回的结果是Task,其中T为最终结果4、await关键字只能放在Task前面5、如果没有return 默认返回Task返回 Task static void Main(string[] args) {

2017-02-13 16:39:49 472

原创 Task 创建 传参 等待 回调 获取返回值

创建Task并执行创建/第一种 无参数方式TaskFactory taskfactory = new TaskFactory(); //第一种创建方式 无参数 for (int i = 0; i < 5; i++) { taskfactory.Star

2017-02-13 16:32:56 11916

原创 Sql 语句 查询 某一列 不重复值 和不重复值数量

查询不重复值总数select count(distinct lieming ) from table where tiaojian=1查询不重复值具体值select distinct lieming from table where tiaojian=1

2017-01-17 16:08:37 14257 1

原创 ThreadPool 线程池 多线程 等待 回调函数 获取返回值

ThreadPool 出现于2.0时代线程池:预先准备好线程,少了会补充,多了会销毁多余部分价值:速度快基本代码包含最基本的使用 //多线程 Console.WriteLine("开始"); WaitCallback act = t => { Thre

2017-01-13 17:21:43 8633

原创 Thread 多线程 等待 回调函数 获取返回值

Thread 是1.1版本时候的线程 它默认是前台线程前台线程:进程关闭后,线程还会执行完无参数多线程 Console.WriteLine("主线程开始"); //不带参数的多线程 ThreadStart sta = () => { Thread.Sleep(500);

2017-01-13 11:23:43 13903

原创 异步委托 多线程 多线程等待 多线程获取返回值

最近公司忙 有一周多时间没有更新了,下面继续今天学的是异步多线程首先把老师总结的知识点搬上来看一下 ,挺好理解的1、异步方法会卡界面,异步多线程不会卡界面,因为同步方法会占用UI线程,无法响应其他操作;异步多线程,不会占用UI线程,方法由子线程完成2、同步方法慢,只有主线程在执行方法;异步方法快,启动了多个线程同时执行方法,当然这样会占用更多的资源(多线程的调度管理,也需要消耗资源

2017-01-13 10:20:57 1409

原创 异步 等待异步 异步回调 获取异步结果

异步 是通过委托来实现的异步就是另开一个线程 去执行委托里面的方法体整个代码全部一下子贴出来 Console.WriteLine("程序开始"); Func fun = t => { //等待2秒 容易看效果 Thread.Sleep(2000); Con

2017-01-04 10:43:16 3812

原创 C#序列化与反序列化

序列化 就是 对象转换成字符串的过程反序列化 就是 字符串转换成对象的过程下面是我根据别人的代码稍微改成泛型的序列化方法二进制序列化与反序列化 Binary/* *优点:体积小 *缺点:看不懂 */ /// /// 二进制序列化器 /// 根据提供的地址和文件

2017-01-04 09:37:11 252

原创 文件夹 文件的创建 读写

public class MyIO { //获得配置文件里面的路径信息 public static string DicPath = ConfigurationManager.AppSettings["DicPath"]; //用于移动 public static string NewPath = @"D:\我的项目\联系项目

2016-12-31 16:40:54 272

原创 try catch finally 细节

try catch  try { } catch (Exception ex) { }代码中出现异常之后,会逐级向上报出异常,直到某一个地方catch并将它吞掉为止try catch finally try {

2016-12-31 15:26:22 365

原创 委托 事件 实现观察者模式

通过委托事件 实现观察者模式一些简单的类public class Student { public delegate void StudentDelegate(); public event StudentDelegate StudentPlayPhone; public void PlayPhone()

2016-12-31 11:09:24 457

原创 委托 创建 调用 多播委托 事件 委托与事件的区别

委托是一个类型事件是委托的一个实例 加了event关键字Student类public class Student { public event MyDelegate.Delegate1 eventDe;//预先创建事件 下面用 public void DelegateInvoke() { eve

2016-12-31 10:44:43 708

原创 抽象类 接口 虚方法 杂记

抽象类还是个类,只不过在class前面加了一个abstract,里面可以拥有普通方法抽象类不能被实例化,因为方法都没有实现抽象类会表示一个东西是什么接口是描述一个东西可以做什么抽象类可以包含普通方法、字段、属性接口可以包含没有实现的方法、属性主动隐藏父类中普通方法必须在子方法类中加new虚方法的调用是由运行时决定 右边的普通方法的调用是由编译

2016-12-31 09:16:53 252

原创 配置文件+反射 创建对象

用户类public class User { public User() { Console.WriteLine("User被创建"); }}配置文件 调用这里需要的是 1、需要添加System.configuration引用2、需要引用System.C

2016-12-29 17:21:50 413

原创 泛型+反射 实现泛型向数据库插入信息类 并返回插入数据的Id值

static string conStr = @"server=.;database=a;uid=sa;pwd=a;";/// /// ExecuteScalar /// /// sql语句 /// SqlParameter /// 查询结果表中最左上角单元格的数据 private static

2016-12-29 17:12:23 1134

原创 反射 新增知识点

1、反射可以直接创建方法//dll名称+类型 Activator.CreateInstance("HomeWork1","HomeWork1.User");2、不一定遇到反射 就要用Assembly 来读取dll 如果已知类型 可以直接创建并获取信息Type type = typeof(T); Object obj = Activator

2016-12-29 17:00:44 204

原创 初涉Linq

namespace Linq{ public class Student { public int Id{get;set;} public string Name{get;set;} public int Age{get;set;} } class Program { s

2016-12-28 15:55:21 208

原创 扩展方法 Extend

扩展方法,可以在我们不修改原类的情况下,可以从外部给它注入一个方法,添加一个行为需要注意是,扩展方法中 类和方法必须都是静态,并且在参数前面需要加入this关键字 即可通过  参数.方法()  方式进行调用应用:对第三方空间扩展的时候进行使用注意:如果原类里面出现同名方法,会执行原类里面的方法注意:避免滥用例:Student类 public class Studen

2016-12-28 12:00:05 366

原创 系统自带委托应用 Action Func

//系统自带委托分2种 //1、Action 带参数 无返回值委托 //2、Func 带参数 有返回值委托 //Action 无参数 Action action1 = () => Console.WriteLine("这里是Action无参数委托方法"); action1.In

2016-12-28 11:46:00 263

原创 Lmabda简化史

public delegate string MyToString(int iValue); static void Main(string[] args) { //第一种形态 { MyToString mytostring = new MyToString(delegate(int

2016-12-28 11:29:51 438

原创 匿名类+匿名方法

匿名类var people =new { Id=1, Name="张三", Age=25 }; Console.WriteLine("{0}号选手{1}今年已经{2}岁了",people.Id,people.Name,peo

2016-12-28 11:12:11 788

原创 C# 反射-不需要接口约束,调用各种方法

反射优缺点优点:动态缺点:1、避开编译器检查,在有错误的情况下,在编译的时候不会报错,只有运行的时候才会报错2、用起来不只管,不方便3、性能有损失调用实例方法创建一个实例方法namespace DoSomeThing{ public class Funtions { public void ShiLi()

2016-12-27 11:22:52 794

原创 C# 反射-通过继承接口实现创建对象并调用方法

初学反射,在个人理解中,他的主要目的是为了让系统实现可扩展 可配置。反射+配置文件+工厂 为例先来一个接口类 public interface IShowFun { void Say(); void Do(); }一个集成该接口的方法 public class ShowGirlFun:IShowFun {

2016-12-26 10:31:17 5609

原创 asp.net 泛型的 协变与逆变

协变与逆变就是为了在声明一些接口的时候,可以增强他们的适用面其中 out T 只能用于返回值泛型参数         in T 只能用于传入参数举例说明如 创建2个类 public class People { } public class Chinese:People { }List PeopleList

2016-12-23 11:45:30 301

原创 asp.net 泛型、泛型约束

开篇先说一下泛型的优点1、可以通过一个方法实现多种参数的调用2、性能无损失3、生命方法的时候没有指定类型,调用的时候指定,这就是一种延迟泛型的创建举例泛型方法 public static void Show(T t) { Console.WriteLine("参数类型是:{0}",typeof(T));

2016-12-23 11:06:34 723

原创 设计模式-行为性设计模式:访问者模式 Visitor

访问者模式关注的是如何对一个集合的成员进行访问描述了对不同的成员,不同的访问当时,还有不同的处理放生,不同的前置条件使用场景:把一群if else 封装起来优点:可以随意添加访问者(Clothes类)缺点:People类这一层 不能随意增加,必须为确定数量代码:人类 public abstract class People {

2016-12-19 15:59:22 241

原创 设计模式-行为性设计模式:策略模式 Strategy

策略模式 就是把业务逻辑和算法分开好处:可以额外添加一些处理,屏蔽客户端对算法的依赖缺点:上端必须知道所有的算法,并负责选择算法构成:一个策略环境 一个抽象策略和一大堆子策略下面模拟一个简单计算器的代码抽象策略代码 public abstract class BaseCalculation { public int leftInput

2016-12-18 17:44:15 267

原创 设计模式-行为性设计模式 状态模式 State

状态模式一个对象 随着外部的调用,自身会改变自身的状态,状态变化后可以展示出不同的行为节点进行自我管理一个灯父类 还有一个枚举灯颜色 public enum Dengys { Hong, Lv, Huang } public abstract class Deng { publ

2016-12-18 16:19:26 248

原创 设计模式-行为设计模式:观察者模式 Observer

观察者模式,就是某件事发生之后,会起连锁反应,发生一系列的事通知接口 public interface INotify { void Notify(); }观察者类public class Teacher:INotify { public void Moshou() { Cons

2016-12-18 10:09:59 237

通过RSA证书提取XML/PEM公钥私钥

通过RSA.PFX证书提取XML/PEM公钥私钥,源码,目前只支持PFX格式的提取,通过RSA.PFX证书提取XML/PEM公钥私钥,源码,目前只支持PFX格式的提取

2018-05-07

盘古分词 DictManage.exe

可以通过该工具,对盘古分词的词库进行升级,添加自己想要的词,可以通过该工具,对盘古分词的词库进行升级,添加自己想要的词

2017-05-09

scel转换txt工具

用于将scel词库文件转换成为txt文件

2017-05-09

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除