![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C#
文章平均质量分 86
苍狼_2001
程序员之所以犯错误,不是因为他们不懂,而是因为他们自以为什么都懂。
展开
-
C# 使用WinSCP方法 类库、脚本
官网下载:WinSCP :: WinSCP官网C#示例:WinSCP .NET Assembly and COM Library :: WinSCP(全程英文,其他内容建议在园内搜索,其他地方好多没有用的内容浪费时间)引用类库:WinSCPnet.dll执行程序:WinSCP.exe (放在项目根目录中,没有此文件类库无法独立运行)难点:SshHostKeyFingerprint = “ 给定的密钥” 如果你不知道密钥没有关系,使用WinSCP.exe 程序,添加一个连接方式并登录。...原创 2022-04-09 14:21:23 · 3311 阅读 · 0 评论 -
C#反射详解
反射定义 反射提供了封装程序集、模块和类型的对象(Type类型)。可以使用反射动态创建类型的实例,将类型绑定到现有对象,或从现有对象获取类型并调用其方法或访问其字段和属性。如果代码中使用了特性,可以利用反射对它们进行访问。【MSDN】使用场景需要访问程序元数据的特性。 检查和实例化程序集中的类型。 在运行时构建新类型。使用System.Reflection.Emit中的类。 执...转载 2019-11-08 16:43:38 · 198 阅读 · 0 评论 -
关于C#中readonly的变量赋值问题。
const与readonly 很像,都是将变量声明为只读,且在变量初始化后就不可改写。那么,const与readonly 这两个修饰符到底区别在什么地方呢?其实,这个牵扯出C#语言中两种不同的常量类型:静态常量(compile-time constants)和动态常量(runtime constants)。这两者具有不同的特性,错误的使用不仅会损失效率,而且还会造成错误。 首先先解释...转载 2018-07-19 13:46:57 · 2668 阅读 · 0 评论 -
C#的Installer生成的msi的安装文件,安装新版本时提示:已经安装了该产品的另一个版本。无法继续安装此
vs2010环境下的处理方法如下:当用去运行,用C#的Installer生成的新版本的msi安装文件时,出现错误:已经安装了该产品的另一个版本。无法继续安装此版本。可以使用“控制面板”中“添加/删除程序”来配置或删除该产品现有版本的话,解决办法是:去Installer项目的"部署项目属性"中,把RemovePreviousVersions设置为True,意思是,如果之前已安装旧版本的话,会去检测并...原创 2018-06-07 16:33:14 · 15776 阅读 · 0 评论 -
Setup.msi和Setup.exe有什么不同
原文地址: http://social.msdn.microsoft.com/Forums/tr-TR/d67ea2ae-381a-4ca0-8489-fb157e06ce43/faqs-setupmsisetupexe不同之处:1)点击Setup.exe文件来实现安装:Setup.exe是一个安装引导程序。它是安装工程通过MSBuild创建的,其中包含了一个XML文件,定义了应用程序所需要的系统...转载 2018-06-07 16:15:29 · 1471 阅读 · 0 评论 -
让.net程序自动运行在管理员权限下
如何让.net程序自动运行在管理员权限下 VS2010 c# 编译的WINFORM程序 在Win7 以管理员身份运行 windows 7和vista提高的系统的安全性,同时需要明确指定“以管理员身份运行”才可赋予被运行软件比较高级的权限,比如访问注册表等。否则,当以普通身份运行的程序需要访问较高级的系统资源时,将会抛出异常。 如何让程序在启动时,自动要求“管理员”权限了,我们只需要修...原创 2018-06-07 13:31:22 · 247 阅读 · 0 评论 -
NPOI导出多张图片到Excel
常用NPOI导出数据到excel,但没有试过如何导出图片。NPOI最大的特点就是不依赖于Excel组件,服务端不需要安装Excel。在单元格中插入图片主要是用HSSFClientAnchor对象。他有8个参数。 HSSFClientAnchor anchor = new HSSFClientAnchor(dx1, dy1, dx2, dy2, col1, row1, col2, row2);前面四...转载 2018-04-19 13:39:41 · 1770 阅读 · 0 评论 -
C#扫盲之:带你掌握C#的扩展方法、以及探讨扩展方法的本质、注意事项
1、为什么需要扩展方法 .NET3.5给我们提供了扩展方法的概念,它的功能是在不修改要添加类型的原有结构时,允许你为类或结构添加新方法。思考:那么究竟为什么需要扩展方法呢,为什么不直接修改原有类型呢?首先,假设我们的项目中有一个类,后来过了一段时间,我们明确的知道需要为该类添加一个新功能,考虑这个需求有两个解决办法:(1)直接修改当前类的定义 这样做的缺点是,破坏向后的兼容性,可能以前使用的旧代...转载 2018-04-18 17:33:14 · 246 阅读 · 0 评论 -
C#构造函数、私有构造函数、静态构造函数与构造函数执行顺序
默认构造函数,如果没有为类指定任何构造函数,编译器会自动为类创建一个无参构造函数,用以初始化类的字段;如果为类编写了构造函数,那么编译器就不会再自动生成无参构造函数了。ps.C#不允许用户为结构定义无参构造函数。 静态构造函数,不能访问实例成员,只能用来初始化一些静态字段或者属性,仅在第一次调用类的任何成员时自动执行,不带访问修饰符,不带任何参数,每个类只能有一个静态构造函数,但...转载 2018-07-19 14:57:36 · 338 阅读 · 0 评论 -
委托和事件的区别
首先,我们知道委托和事件都可以用来调用跟自己方法签名一样的方法。容易混淆大家的地方大多在于这两者之间的区别。从我们使用委托delegate和事件event上的主要有两大区别(如表1所示)。 表1 委托和事件的区别序号 区别 委托 事件 1 是否可以使用=来赋值 是 否 2 是否可以在类外部进...转载 2018-07-30 11:58:03 · 324 阅读 · 0 评论 -
C# BackgroundWorker用法详解
在C#程序中,经常会有一些耗时较长的CPU密集型运算,如果直接在 UI 线程执行这样的运算就会出现UI不响应的问题。解决这类问题的主要途径是使用多线程,启动一个后台线程,把运算操作放在这个后台线程中完成。但是原生接口的线程操作有一些难度,如果要更进一步的去完成线程间的通信就会难上加难。还好 .NET 类库中提供了一个叫做 BackgroundWorker 的类可以比较优雅的解决这类问题。虽然B...转载 2018-07-31 14:22:12 · 221 阅读 · 0 评论 -
谈谈C#文件监控对象FileSystemWatcher使用感受
最近在项目中有这么个需求,就是得去实时获取某个在无规律改变的文本文件中的内容。首先想到的是用程序定期去访问这个文件,因为对实时性要求很高,间隔不能超过1S,而且每次获取到文本内容都要去分发给WEB服务器做别的操作,而那个文本的写入有时候会频繁,1秒可能多次,但是也有可能在相当长一段时间内是没有任何写入的。这样一来如果每秒都去访问文件的话,一个是IO问题,还有就是每次操作都会引起后端一系列程序的...转载 2018-07-31 14:49:05 · 968 阅读 · 0 评论 -
关于C#创建windows服务的测试与总结
关于C#创建windows服务的测试与总结。.NET中安装服务很麻烦,即要创建Service,又要创建ServiceInstall,最后还要弄一堆命令来安装和卸载。今天给大家提供一种方式(经过测试),直接使用这样的程序来安装/卸载服务,并且可以让一个exe即能直接运行也可以安装为windows服务(运行exe文件时需要以管理员身份运行,卸载服务也需要管理员身份,否则可能会报错,并且在程序中直...转载 2018-07-31 16:52:22 · 835 阅读 · 0 评论 -
C#使用ServiceController控制windows服务
C#中,使用ServiceController类控制windows服务,使用之前要先添加引用:System.ServiceProcess,然后在命名空间中引用:using System.ServiceProcess。下面举例获取本机的所有已安装的Windows服务和应用,然后查找某一应用活服务是否已经安装。代码: using System; using Sy...转载 2018-07-31 16:53:02 · 7455 阅读 · 0 评论 -
IIS7.5标识介绍
应用程序池的标识是运行应用程序池的工作进程所使用的服务帐户名称。默认情况下,应用程序池以 Network Service用户帐户运行,该帐户拥有低级别的用户权限。您可以将应用程序池配置为以 Windows Server® 2008操作系统中的内置用户帐户之一运行。例如,您可以指定Local System用户帐户,此帐户与 Network Service或 Local Service内置用...原创 2019-05-16 18:50:30 · 228 阅读 · 0 评论 -
保留小数的位数,不四舍五入
double m1 = 12.3476;//保留两位小数double m3 = Math.Truncate(m1 * 100) / 100;//得到结果是:12.34原创 2019-08-02 10:21:43 · 347 阅读 · 0 评论 -
细说ASP.NET Forms身份认证
阅读目录开始ASP.NET身份认证基础ASP.NET身份认证过程如何实现登录与注销保护受限制的页面登录页不能正常显示的问题认识Forms身份认证理解Forms身份认证实现自定义的身份认证标识在多台服务器之间使用Forms身份认证在客户端程序中访问受限页面用户登录是个很常见的业务需求,在ASP.NET中,这个过程被称为身份认证。 由于很常见,因此,我认为把这块内容整理出来,与大家分享应该是件有意义的...转载 2018-02-27 14:45:38 · 170 阅读 · 0 评论 -
session与cookie的介绍和两者的区别之其相互的关系
本文分别对Cookie与Session做一个介绍和总结,并分别对两个知识点进行对比分析,让大家对Cookie和Session有一个更深入的了解,并对自己的开发工作中灵活运用带来启示。cookie机制Cookies是服务器在本地机器上存储的小段文本并随每一个请求发送至同一个服务器。IETF RFC 2965 HTTP State Management Mechanism 是通用cookie规范。网络...转载 2018-02-27 11:49:11 · 121 阅读 · 0 评论 -
C#读取XML时自动过滤掉注释部分
#在读取XML的时候会读取XML中的全部内容,对于其中注释掉的部分也可以通过节点获取到。我们可以通过设置IgnoreComments 属性来只读取未加注释的XML信息。下面是加载为参加注释的XML信息代码: 1: XmlDocument xmlDoc = new XmlDocument(); 2: XmlReaderSettings settings = n原创 2018-01-10 14:25:35 · 1678 阅读 · 0 评论 -
简单的数据库表到对象的ORM映射
根据微软企业库中数据访问模块改造的一个对象映射类,针对DataRow进行扩展,提供方便的DataTable到对象集合的映射。using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;public static class DataRowExtensions{原创 2017-06-28 10:37:50 · 462 阅读 · 0 评论 -
关于.NET编程中各种事务的实现
从数据库事务开始在很早的以前,我们要实现一个事务通常是基于SQL的数据库事务,一般的通过SQL查询语言来实现,如下所示,同时更新两本书的价格:BEGIN TRANSACTION UPDATE tb_Book SET Price=122 WHERE IDENT_CURRENT=1001UPDATE tb_Book SET Price=88 WHERE IDENT_CURRENT=1原创 2017-06-26 17:20:26 · 1108 阅读 · 0 评论 -
像window 服务一样在web站点中执行任务
在做项目时,遇到同步ERP数据的问题,客户要求是:程序中,设置一个开始时间,再设置一个时间间隔,让程序每隔一段时间导出销售记录,这个开始时间和时间间隔可以手动修改设定。 这问题纠缠了我好几天,总算解决了,写文档记录: 首先,要让程序定时执行任务,可以使用ASP.NET中的Timer计时,不过这个定时不是很准,如果用它,还会遇到其他的问题,后面会提到。第二种方法是,使用一个叫原创 2017-05-27 11:35:34 · 304 阅读 · 0 评论 -
将MethodInfo转化为Delegate的方式
有时再用反射的时候,需要将反射出的方法注册给某个事件,这是就需要将改方法转化为delegate后才能绑定到对应的事件上可以通过Delegate.CreateDelegate的方法来实现,如下:private void button3_Click(object sender, EventArgs e) { var Instance = Acti原创 2017-03-11 00:38:39 · 3176 阅读 · 0 评论 -
AutoMapper使用
我们在之前的文章中提到了ORM,然后用到了EF,今天我们再介绍一种实体转换关系的模型AutoMapper。一、是什么 AutoMapper是一个.NET的对象映射工具。主要作用是进行领域对象与贫血模型之间的转换、数据库查询结果映射至实体对象。 什么是贫血模型?贫血模型(DTO,Data Transfer Object,就是说只包含属性,只能保存转载 2017-02-27 18:03:59 · 325 阅读 · 0 评论 -
AutoMapper使用
我们在之前的文章中提到了ORM,然后用到了EF,今天我们再介绍一种实体转换关系的模型AutoMapper。一、是什么 AutoMapper是一个.NET的对象映射工具。主要作用是进行领域对象与贫血模型之间的转换、数据库查询结果映射至实体对象。 什么是贫血模型?贫血模型(DTO,Data Transfer Object,就是说只包含属性,只能保存转载 2017-02-27 18:00:33 · 251 阅读 · 0 评论 -
Net Web项目安装包制作
最近公司要求OA要以安装的形式,方便实施人员安装到客户机器上。之前是在好几年前用VS2003的打包过Web项目,不过早已忘却。所以第一个想法就是使用搜索引擎查找,网上也有许多介绍,不过有些讲的比较粗,看不太明白。还是动手实践一下,或许会清爽明朗。 在测试Web项目中新建一个Web安装项目,如下图: 在新建的安装项目,右击项目如下图: 选择项目输出,选择要原创 2013-02-22 15:46:51 · 356 阅读 · 0 评论 -
Net学习难点讨论系列2 – 细说C#中new关键字与多态
今天去面试,被问到C#中的new关键字,看了那么多的书对new关键字还是有一定认识,回来又把new复习了一遍,发现了许多以前还不知道的细节。 C#中有两处地方用到new关键字,第一处也是最常见的一处是用在调用构造函数的时候,这种情况也是大家见的最多的一种。另一处是用在派生类中,作用有隐藏成员,切断继承关系等,相信第二处的用法大家明显要比第一处生疏。对于new隐藏成员的作用,往往是出于使转载 2012-04-16 19:13:15 · 373 阅读 · 0 评论 -
再谈ASP.NET 7 - 跨应用、跨服务器的表单验证
很多情况下,我们想要在同一台服务器上两个不同的应用程序共享相同的Forms验证信息,即在一个应用程序通过验证后,其它应用可以共享这个验证状态,从而不用再次登陆,实现一个单点登录的效果 使用Forms验证下产生的cookie是被加密的,每个程序都会默认生成独立的解密和校验码,所以我们也很难再不同的应用间共享加密的cookie。要想使共享变得可能,我们需要通过配置文件(服务器端)手转载 2012-04-16 18:56:29 · 547 阅读 · 0 评论 -
在C#里把ArrayList转换为Array 或 把Array转换为ArrayList
概述这篇文章解释如何使用最简单的方法把Array转换成ArrayList和相反的转换。使用的.NET类System.Collections.ArrayList 介绍操作数组是应用开发中最普通的任务之一。有时你需要使用一组对象来获得操作对象的属性的能力,并原创 2011-08-19 15:39:51 · 1194 阅读 · 0 评论 -
.net中前台javascript与后台c#函数相互调用问题
C#代码与javaScript函数的相互调用问:1.如何在JavaScript访问C#函数?2.如何在JavaScript访问C#变量?3.如何在C#中访问JavaScript的已有变量?4.如何在C#中访问JavaScript函数? 问题1答案如下:javaScript函数中执行C#代码中的函数:方法一:1、首先建立一个按钮,在后台将调用或处理的内容写入button_click中;原创 2011-06-28 21:30:00 · 301 阅读 · 0 评论 -
最简洁的从html中提取纯文本的办法
Regex.Replace(Str, "]+>","")原创 2011-06-25 19:18:00 · 667 阅读 · 0 评论 -
一个大家不常用到,却很有用的页面间传值方法(Context.Handler)
一、目前在ASP.NET中页面传值共有这么几种方式:1、表单提交, ....form1.submit();....此种方在ASP。NET中无效,因为ASP。NET的表单总是提交到自身页面,如果要提交到别一页面,需要特殊处理。2、链接地址传送接收页面: string str = Request["param1"]3、Session共享发送页面:Session("param1") = "1111";原创 2011-06-25 19:14:00 · 416 阅读 · 0 评论 -
asp.net 4.0 来了
伴随着VS2010的公开测试,ASP.NET4.0也进入了我们的视线。ASP.NET4.0究竟给我们带来了什么,将在哪些方面提高我们的生产力?在何时你需要使用ASP.NET4.0开发你的网站程序?需要更严格的遵守web标准 需要更流畅的webform开发方式 需要更好的搜索引擎优化 需要后知后觉的纠正一些不够优良的设计,这些设计甚至可能是在ASP.NET1.0发布之前就原创 2011-06-15 13:13:00 · 497 阅读 · 0 评论 -
web.config详解
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://zhoufoxcn.blog.51cto.com/792419/166441 在开发中经常会遇到这样的情况,在部署程序时为了保密起见并不将源代码随项目一同发布,而我们开发时的环境与部署环境可能不一致(比如数据库不一样),如果在代码中保存这些配置这些信息部署时需要到用户那里更改代码再重新编译,这种部署方式非常麻烦。在.net中提供了一种便捷的保存项目配置信息的办法,那就是利用配置文件,配置文件转载 2011-02-19 12:36:00 · 263 阅读 · 0 评论 -
SqlDataAdapter.Update批量数据更新
SqlDataAdapter.Update批量数据更新使用SqlDataAdapter.Update可以方便地对数据库进行快速、批量数据更新。我们最常用的多条数据更新方法是使用循环多次执行SQL语句或存储过程,这样虽然方便,但由于连接和数据传递要在服务器和客户端多次来往,大大增加了整个过程的时间,当数据越大时越明显!下面对SqlDataAdapter.Update作个简单的演示介绍吧。原创 2017-09-25 16:52:02 · 280 阅读 · 0 评论 -
Visual Studio 2015与C#6.0新特性
今天,我们很高兴宣布下一代开发工具Visual Studio 2015的新特性,新的改进包括:支持跨平台的C++开发、新开源的.NET编译平台、C++11和C++14的支持,集成Apache的Cordova跨平台移动开发工具和ASP.NET5新框架,这些改进有大有小,零度在此摘录Visual Studio 2015在C#开发方面的新特性。1、使用null条件运算符,在调用对象的属性或者方法原创 2017-06-28 11:28:48 · 329 阅读 · 0 评论