C#
文章平均质量分 72
SucreLiu04
学最好的别人,做最好的自己。
展开
-
C#也能动态生成Word文档并填充数据
C#也能动态生成Word文档并填充数据 要使用C#操作word,首先要添加引用: 1、添加引用->COM->Microsoft Word 11.0 Object Library 2、在.cs文件中添加using Word;//下面的例子中包括C#对Word文档的创建、插入表格、设置样式等操作://(例子中代码有些涉及转载 2016-07-28 15:09:53 · 2421 阅读 · 2 评论 -
Xml CDATA 序列化
namespace Test{ using System; using System.IO; using System.Text; using System.Xml; using System.Xml.Serialization; using Test.Share; using Microshaoft; public class C转载 2014-09-25 14:03:28 · 2471 阅读 · 0 评论 -
C#图像处理(各种旋转、改变大小、柔化、锐化、雾化、底片、浮雕、黑白、滤镜效果)
一、各种旋转、改变大小注意:先要添加画图相关的using引用。//向右旋转图像90°代码如下:private void Form1_Paint(object sender, System.Windows.Forms.PaintEventArgs e){Graphics g = e.Graphics;Bitmap bmp = new Bitmap("rama.jpg");//加载图像g转载 2014-08-14 09:09:53 · 2327 阅读 · 0 评论 -
Windows服务完成Server端的Socket通信
现在开始我们来讲解,如何一步一步地完成Windows服务Server端Socket通信程序。 我个人认为Windows服务只是包裹在Socket通信程序外的“一件外套”,所以核心还是我在网上找到的这个Socket程序,为此我们的第一步应该先开发出此Socket程序的类库。1、打开Visual Studio.Net2003,单击菜单中的“文件”——>“新建”——>“项目”,在弹出的转载 2014-07-15 16:42:59 · 2517 阅读 · 0 评论 -
WCF基础
一 WCF与SOA SOA是一种通过为所有软件提供服务外观,并将这些服务的WSDL集中发布到一个地方的一种组织企业软件的方法。它通过使用明确定义的接口通过跨越边界传递消息来让多个自治的服务协同工作。SOA的真正价值是——允许开发者从代码中抽取出公共基础功能的实现,更多地关注业务逻辑和需要的功能特性。在开发SOA应用程序时,我们能够实现服务代码与客户端使用技术与平台的解耦,也与并发管理、事务传转载 2014-07-29 17:20:56 · 616 阅读 · 0 评论 -
WCF安全系列
一、 basicHttpBinding. 21、 安全模式None. 32、 安全模式Message - 客户端验证:Certificate. 52.1. 获得和安装证书... 52.2. 服务端代码:... 52.3. 客户端代码:... 62.4.转载 2014-07-29 10:08:56 · 1323 阅读 · 0 评论 -
WCF中的ServiceHost初始化两种方式
在宿主程序中初始化ServiceHost有直接写代码和使用配置文件两种方式。使用ServiceHost首先要引用System.ServiceModel 命名空间。1 代码方式2 配置文件方式配置文件代码:services> service behaviorConfiguration="serverBehavior" name="HelloWordServic转载 2014-07-10 15:40:16 · 5499 阅读 · 0 评论 -
SmartThreadPool
https://github.com/amibar/SmartThreadPool首先是实例化的时候的参数的解释//Initialize SmartThreadPool & Make logs//SmartThreadPool m_hThreadPool;//m_hThreadPool = new SmartThreadPool();//声明一个线程池STPStartInfo s转载 2014-06-18 15:50:12 · 1562 阅读 · 0 评论 -
C#使用多线程
1. 单元模式和Windows Forms 单元模式线程是一个自动线程安全机制, 非常贴近于COM——Microsoft的遗留下的组件对象模型。尽管.NET最大地放弃摆脱了遗留下的模型,但很多时候它也会突然出现,这是因为有必要与旧的API 进行通信。单元模式线程与Windows Forms最相关,因为大多Windows Forms使用或包装了长期存在的Win32 API——连同它转载 2014-06-18 15:31:58 · 726 阅读 · 0 评论 -
并发数据(锁)ReaderWriterLockSlim
ReaderWriterLockSlim 类ReaderWriterLockSlim 类支持三种锁定模式:Read,Write,UpgradeableRead。这三种模式对应的方法分别是 EnterReadLock,EnterWriteLock,EnterUpgradeableReadLock 。再就是与此对应的 TryEnterReadLock,TryEnterWriteLock,Try转载 2014-06-18 15:29:27 · 709 阅读 · 0 评论 -
ReaderWriterLockSlim使用注意事项
ReaderWriterLockSlim是3.5新推出的一个类型,用来改良ReaderWriterLock的性能问题,提供了个轻量级的读写锁的实现。 不过,今天在看msdn论坛的时候,发现一个帖子,里面提到了ReaderWriterLockSlim的一个性能问题,不过这个性能问题与之前ReaderWriterLock的性能问题不同,不是使用时的性能问题,而是GC回收时的性能问题。转载 2014-06-18 15:26:02 · 2037 阅读 · 0 评论 -
C# volatile 与 lock
C# volatile 与 lockvolatile的使用场景:多个线程同时访问一个变量,CLR为了效率,允许每个线程进行本地缓存,这就导致了变量的不一致性。volatile就是为了解决这个问题,volatile修饰的变量,不允许线程进行本地缓存,每个线程的读写都是直接操作在共享内存上,这就保证了变量始终具有一致性。缺点很明显:牺牲了效率。lock的使用场景:多个线程同时访问一个代码块转载 2014-06-05 15:35:52 · 669 阅读 · 0 评论 -
?? 运算符(C# 参考)
?? 运算符称为 null 合并运算符,用于定义可以为 null 值的类型和引用类型的默认值。 如果此运算符的左操作数不为 null,则此运算符将返回左操作数;否则返回右操作数。转载 2014-06-05 17:14:11 · 666 阅读 · 0 评论 -
C#中的多线程
By Joseph Albahari, Translated by Swanky WuBased on "C# 3.0 in a Nutshell" by Joseph Albahari and Ben Albahari (O'Reilly Media) http://www.albahari.com/nutshell/第四部分:高级话题非阻止同步转载 2014-06-05 15:33:36 · 840 阅读 · 0 评论 -
C#中Abstract和Virtual
abstract可以用来修饰类,方法,属性,索引器和时间,这里不包括字段. 使用abstrac修饰的类,该类只能作为其他类的基类,不能实例化,而且abstract修饰的成员在派生类中必须全部实现,不允许部分实现,否则编译异常. 如:using System;namespace ConsoleApplication8{ class Program {转载 2014-06-05 09:57:41 · 476 阅读 · 0 评论 -
C#异步编程
同步方法和异步方法的区别同步方法调用在程序继续执行之前需要等待同步方法执行完毕返回结果异步方法则在被调用之后立即返回以便程序在被调用方法完成其任务的同时执行其它操作异步编程概览.NET Framework 允许您异步调用任何方法。定义与您需要调用的方法具有相同签名的委托;公共语言运行库将自动为该委托定义具有适当签名的 BeginInvoke 和 EndInvoke 方法。B转载 2014-06-04 10:29:54 · 704 阅读 · 0 评论 -
Smart Thread Pool 介绍
By Ami Bar. A smart Thread Pool implementation in .NET.http://www.codeproject.com/cs/threads/smartthreadpool.asp顾名思义,智能线程池.一定比自带的线程池有过人之处.不然也没有必要再搞个出来了.可创建线程池实例。可动态调整线程池工作线程数量。WorkItem 可以返转载 2014-05-13 17:57:51 · 917 阅读 · 0 评论 -
C# 参考之方法参数关键字:ref及out
方法参数上的 out 方法参数关键字使方法引用传递到方法的同一个变量。当控制传递回调用方法时,在方法中对参数所做的任何更改都将反映在该变量中。 当希望方法返回多个值时,声明 out 方法非常有用。使用 out 参数的方法仍然可以返回一个值。一个方法可以有一个以上的 out 参数。 若要使用 out 参数,必须将参数作为 out 参数显式传递到方法。out 参数的值不会传递到 out 参数。转载 2014-03-27 10:46:16 · 729 阅读 · 0 评论 -
效率最高的Excel数据导入
(一)背景 如何将数据库中的数据导入到EXCEL文件中,我们经常会碰到。本文将比较常用的几种方法,并且将详细讲解基于SSIS的用法。笔者认为,基于SSIS的方法,对于海量数据来说,应该是效率最好的一种方法。个人认为,这是一种值得推荐的方法,因此,本人决定将本人所知道的、以及自己总结的完整的写出来,一是提高一下自己的写作以及表达能力,二是让更多的读者能够在具体的应用中如何解决将海量数据导转载 2014-09-29 15:58:23 · 1280 阅读 · 0 评论 -
威胁建模 Web 应用程序
威胁建模 Web 应用程序本指南包含以下模块:•Web 应用程序威胁模型一览•How To:在设计时为 Web 应用程序创建威胁模型•备忘单:Web 应用程序安全框架•演练:为 Web 应用程序创建威胁模型•模板:Web 应用程序威胁模型•模板示例转载 2014-10-29 16:35:40 · 3393 阅读 · 0 评论 -
C#中Split用法~
1、用字符串分隔: using System.Text.RegularExpressions;string str="aaajsbbbjsccc";string[] sArray=Regex.Split(str,"js",RegexOptions.IgnoreCase);foreach (string i in sArray) Response.Write(i.ToString()转载 2015-03-19 10:09:07 · 513 阅读 · 0 评论 -
C#与C++之间类型对应关系
//C++中的DLL函数原型为 //extern "C" __declspec(dllexport) bool 方法名一(const char* 变量名1, unsigned char* 变量名2) //extern "C" __declspec(dllexport) bool 方法名二(const unsigned char* 变量名1, char* 变量名2) //C#调转载 2016-07-27 10:05:34 · 609 阅读 · 0 评论 -
Web API 强势入门指南
转自【http://www.cnblogs.com/guyun/p/4589115.html】Web API 强势入门指南Web API是一个比较宽泛的概念。这里我们提到Web API特指ASP.NET Web API。这篇文章中我们主要介绍Web API的主要功能以及与其他同类型框架的对比,最后通过一些相对复杂的实例展示如何通过Web API构建http服务,同时也展转载 2016-07-15 18:09:51 · 1450 阅读 · 0 评论 -
C#强密匙加密文件.snk
SNK,作为程序后缀的时候,是.net中的强密匙加密文件!当你把一个程序集放进GAC(全局程序集缓存)时,就要加强名(也就是签名),在GAC中的程序集可以被所有程序引用访问(相当于以前COM组件在注册表里注册一样),如果不放进GAC,刚所有使用这个程序集都要复制这个程序集(也就是私有程序集),所以用不用强名要看情况而定.如果不是 要把.dll共享 可以不使用强名 强名称是为了你转载 2016-06-15 10:35:36 · 2879 阅读 · 0 评论 -
C#中DllImport用法
最近使用DllImport,从网上google后发现,大部分内容都是相同,又从MSDN中搜集下,现将内容汇总,与大家分享。大家在实际工作学习C#的时候,可能会问:为什么我们要为一些已经存在的功能(比如Windows中的一些功能,C++中已经编写好的一些方法)要重新编写代码,C#有没有方法可以直接都用这些原本已经存在的功能呢?答案是肯定的,大家可以通过C#中的DllImport直接调用这转载 2016-04-05 16:34:46 · 2600 阅读 · 0 评论 -
winform treeView 数据绑定
private void Form1_Load(object sender, EventArgs e) { Types = new List() { new UrlTypes() {Id = 1, Name = "中国", Value = "0", ParentId = 0},转载 2016-02-16 14:50:30 · 2952 阅读 · 0 评论 -
C#遍历类的属性 PropertyInfo.Attributes
PropertyInfo.Attributes 属性此属性表示与成员关联的特性。 所有成员都具有相对于特定成员类型定义的特性集。 属性特性使用户能够知道此属性是否是默认属性、SpecialName 属性等等。若要获取 Attributes 属性,请先获取类类型。 从 Type 获取 PropertyInfo。 从 PropertyInfo 获取特性。官方示例:获取类的特性转载 2015-12-07 16:18:27 · 820 阅读 · 0 评论 -
Visual Studio各版本区别
Visual Studio 是微软公司推出的开发环境,Visual Studio 可以用来创建 Windows 平台下的 Windows 应用程序和网络应用程序,也可以用来创建网络服务、智能设备应用程序和 Office 插件。V.S.2012 .1、VS2012和VS2010相比,最大的新特性莫过于对Windows 8 Metro开发的支持。Metro天生为云+端而生,转载 2015-12-07 16:53:22 · 5618 阅读 · 0 评论 -
MSTest or TRX to HTML with Animated Charts
MSTest or TRX to HTML with Animated Charts转载 2015-11-02 10:35:04 · 693 阅读 · 0 评论 -
使用mstest.exe 命令行跑test case(不安装Visual Studio 2010)
使用mstest.exe 命令行跑test case(不安装Visual Studio 2010)怎样在没有安装VS2010的环境里用mstest.exe跑test case?(注:以下实验在64位Windows 7上通过)1. 首先在装有VS2010的环境里,新建一个文件夹,如C:\Users\username\Desktop\mstestCommandLine(注意文件夹名不能有空转载 2015-11-02 10:22:32 · 1713 阅读 · 0 评论 -
MSTest.exe 命令行选项
MSTest.exe 是用于运行测试的命令行命令。 通过使用此命令的几个选项,您可以自定义测试运行。 可以将其中的多个选项相互结合使用;实际上,必须将其中一些特定选项与其他选项一起使用,如下面各节中所述。 在 MSTest.exe 命令行上,可以按任意顺序指定这些选项。MSTest.exe 在解释这些选项或您为这些选项指定的值时,不区分大小写。下面的表列出了 MSTest.ex转载 2015-10-28 17:30:03 · 1830 阅读 · 0 评论 -
XmlSerializer 序列化与反序列化CDATA 以及实现
XmlSerializer类可以帮助我们将对象的状态序列化对保存,同时通过反序列化,可以还原对象的状态。通过与XML序列化与反序列化相关的特性(Attribute),可以控制我们的序列化的XML格式;同时通过实现IXmlSerializable接口,可以自定义的实现序列化与反序列化。关于此类,详情查看MSDN XmlSerializer类。不过在一些特殊情况下,CDATA类型的序列化与反序列化转载 2015-10-26 17:06:30 · 6225 阅读 · 0 评论 -
将地址转换为链接的正则表达式(regex url href)
将文章内容中没有链接的地址转换为链接。代码如下: public static string ShowUrls(string text) { //代码来自博客园 http://www.cnblogs.com Regex linkRegex = new Regex(" href\\s*=\\s*(?:(?:\\\"(?[^\\\"]*)\\\转载 2015-07-13 21:54:47 · 2543 阅读 · 0 评论 -
Delegate,Action,Func,Predicate的使用与区别
C#4.0推出后,类似Linq,Lamda表达式等许多新的程序写法层次不穷。与之相关的Delegate,Action,Func,Predicate的使用和区别也常常让大家迷惑,此处就结合实际的应用,对其进行详细的说明。在书写代码时,常常会用到委托,这个在winform下较常见,但自定义Delegate时,我们常常发现Delegate必须全局可见,才能在需要的地方进行使用,而对于私有的d转载 2014-07-23 08:54:57 · 630 阅读 · 0 评论 -
深入剖析WCF的可靠会话
本系列先后通过《实例篇》、《概念篇》、《协议篇》和《编程篇》对WCF的可靠会话进行了详细探讨。作为本系列的最后一片,我们将深入到WCF的可靠会话体系的最底层,对实现可靠会话的实现原理进行深入剖析。如果读者仔细阅读本系列博文,相信会使读者对可靠会话的理解提升到一定的高度。从《编程篇》中,我们不难看出可靠会话的编程仅仅围绕着一个对象,那就是绑定。绑定在整个WCF架构模型具有重要的地位。WCF整个架转载 2015-06-08 14:33:41 · 745 阅读 · 0 评论 -
通过configSource提高web.config配置灵活性
很多时候我们会有这样的情况,开发环境和测试环境中的配置文件是不一样的,最明显的就是数据库连接串,这样,每次我们发布一个测试版本,都要手动去修改一下配置文件,是不是很麻烦的说。其实利用web.config中的configSource属性,可以很方便的为我们指定外部配置为该节点的内容。这样我们在web.config中只需要指定该配置的configSource的路径就行,而我们再发布的时候,就不需要再修转载 2015-06-01 15:53:31 · 891 阅读 · 0 评论 -
C#-匿名函数
匿名函数是一个“内联”语句或表达式,可在需要委托类型的任何地方使用。可以使用匿名函数来初始化命名委托,或传递命名委托(而不是命名委托类型)作为方法参数。共有两种匿名函数:1.Lambda表达式2.匿名方法 C#委托的发展class Test{ delegate void TestDelegate(string s); static转载 2015-04-16 16:45:37 · 580 阅读 · 0 评论 -
C# - 扩展函数
一、介绍使用扩展函数,可以为无法修改源代码的对象添加新的方法,或者强制让对象支持某些方法,这些方法看起来就是对象本来就有的功能。二、限制条件1、必须在static class 中定义,所以必须使用static修饰2、需要在(只需要在)第一个参数前面使用this修饰3、扩展函数可以通过对象实例调用,也可以使用定义该函数的静态类直接调用三、举例:static cla转载 2015-04-16 16:07:43 · 3121 阅读 · 1 评论 -
C#命名规则
命名规则: 1.用pascal规则来命名方法和类.(第一个单词首字母大写,后面连接的每个单词首字母都大写)public class DataBase ;public void GetDataTable()2.用camel规则来命名局部变量和方法的参数. (第一个单词不大写,后面连接的单词首字母大写)public void AddUser(string userId,转载 2014-03-25 08:54:50 · 1132 阅读 · 0 评论 -
创建一个简单的WCF程序
为了使读者对基于WCF的编程模型有一个直观的映像,我将带领读者一步一步地创建一个完整的WCF应用。本应用功能虽然简单,但它涵盖了一个完整WCF应用的基本结构。对那些对WCF不是很了解的读者来说,这个例子将带领你正式进入WCF的世界。在这个例子中,我们将实现一个简单的计算服务(CalculatorService),提供基本的加、减、乘、除的运算。和传统的分布式通信框架一样,WCF本质上提供一个跨转载 2014-04-02 08:50:24 · 627 阅读 · 0 评论