随笔分类 -  C#

序列化与反序列化
摘要:序列化和反序列化我们可能经常会听到,其实通俗一点的解释,序列化就是把一个对象保存到一个文件或数据库字段中去,反序列化就是在适当的时候把这个文件再转化成原来的对象使用。我想最主要的作用有:1、在进程下次启动时读取上次保存的对象的信息 2、在不同的AppDomain或进程之间传递数据 3、在分布式应用系统中传递数据......在C#中常见的序列化的方法主要也有三个:BinaryFormatter、SoapFormatter、XML序列化本文就通过一个小例子主要说说这三种方法的具体使用和异同点这个例子就是使用三种不同的方式把一个Book对象进行序列化和反序列化,当然这个Book类首先是可以被序列化的 阅读全文
posted @ 2011-08-25 13:42 arong.NET 阅读(187) 评论(0) 推荐(0)
动态调用WebService(转)
摘要:通常我们在程序中需要调用WebService时,都是通过“添加Web引用”,让VS.NET环境来为我们生成服务代理,然后调用对应的Web服务。这样是使工作简单了,但是却和提供Web服务的URL、方法名、参数绑定在一起了,这是VS.NET自动为我们生成Web服务代理的限制。如果哪一天发布Web服务的URL改变了,则我们需要重新让VS.NET生成代理,并重新编译。在某些情况下,这可能是不能忍受的,我们需要动态调用WebService的能力。比如我们可以把Web服务的URL保存在配置文件中,这样,当服务URL改变时,只需要修改配置文件就可以了。 说了这么多,实际上我们要实现这样的功能: public 阅读全文
posted @ 2011-08-03 15:47 arong.NET 阅读(187) 评论(0) 推荐(0)
.NET3.5下用Lambda简化跨线程访问窗体控件,避免繁复的delegate,Invoke(转)
摘要:1、错误的代码是: usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Linq;usingSystem.Text;usingSystem.Windows.Forms;namespaceWindowsFormsApplication5{publicpartialclassForm1:Form{publicForm1(){InitializeComponent();}privatestringblog=&quo 阅读全文
posted @ 2011-08-03 15:32 arong.NET 阅读(242) 评论(0) 推荐(0)
维护App.config信息
摘要:#region获取KeyValueConfigurationCollectionpublicstaticKeyValueConfigurationCollectionGetConfig(){try{System.Configuration.Configurationconfig=ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);KeyValueConfigurationCollectionsettings=config.AppSettings.Settings;returnsettings;}catch 阅读全文
posted @ 2011-08-03 15:29 arong.NET 阅读(223) 评论(0) 推荐(0)
C# Timer用法
摘要:C# Timer用法有哪些呢?我们在使用C# Timer时都会有自己的一些总结,那么这里向你介绍3种方法,希望对你了解和学习C# Timer使用的方法有所帮助。关于C# Timer类 在C#里关于定时器类就有3个C# Timer使用的方法1.定义在System.Windows.Forms里C# Timer使用的方法2.定义在System.Threading.Timer类里 "C# Timer使用的方法3.定义在System.Timers.Timer类里下面我们来具体看看这3种C# Timer用法的解释:◆System.Windows.Forms.Timer应用于WinForm中的,它 阅读全文
posted @ 2011-03-25 20:40 arong.NET 阅读(492) 评论(0) 推荐(0)
C#中的委托和事件(续) [转]
摘要:C#中的委托和事件(续)引言如果你看过了 C#中的委托和事件 一文,我想你对委托和事件已经有了一个基本的认识。但那些远不是委托和事件的全部内容,还有很多的地方没有涉及。本文将讨论委托和事件一些更为细节的问题,包括一些大家常问到的问题,以及事件访问器、异常处理、超时处理和异步方法调用等内容。为什么要使用事件而不是委托变量?在 C#中的委托和事件 中,我提出了两个为什么在类型中使用事件向外部提供方法注... 阅读全文
posted @ 2010-06-11 17:43 arong.NET 阅读(165) 评论(0) 推荐(0)
C# 中的委托和事件(转)
摘要:文中代码在VS2005下通过,由于VS2003(.Net Framework 1.1)不支持隐式的委托变量,所以如果在一个接受委托类型的位置直接赋予方法名,在VS2003下会报错,解决办法是显式的创建一个委托类型的实例(委托变量)。例如:委托类型 委托实例 = new 委托类型(方法名); 源码下载:http://www.tracefact.net/SourceCode/Delegates-and... 阅读全文
posted @ 2010-06-11 17:37 arong.NET 阅读(197) 评论(0) 推荐(0)
C#----DataGridView控件60招(四)[转]
摘要:DataGridView控件用法合集(四) 19. DataGridView中的ContextMenuStrip属性 20. DataGridView指定滚动框位置 21. DataGridView手动追加列 22. DataGridView全体分界线样式设置 23. DataGridView根据单元格属性更改显示内容 24. DataGridView新追加行的行高样式设置る 25. DataGr... 阅读全文
posted @ 2010-06-11 17:32 arong.NET 阅读(350) 评论(0) 推荐(0)
C#----DataGridView控件60招(三) [转]
摘要:<!--[endif]--> 13. DataGridView指定单元格是否表示 14. DataGridView表头部单元格取得 15. DataGridView表头部单元格文字列设定 16. DataGridView选择的部分拷贝至剪贴板 17.DataGridView粘贴 18. DataGridView单元格上ToolTip表示设定(鼠标移动到相应单元格上时,弹出说明信息) 1... 阅读全文
posted @ 2010-06-11 17:31 arong.NET 阅读(369) 评论(0) 推荐(0)
C#----DataGridView控件60招(二) [转]
摘要:<!--[endif]--> 7. DataGridView行列宽度高度设置为不能编辑 8. DataGridView行高列幅自动调整 9. DataGridView指定行列冻结 10. DataGridView列顺序变更可否设定 11. DataGridView行复数选择 12. DataGridView选择的行、列、单元格取得 7. DataGridView行列宽度高度设置为不能编... 阅读全文
posted @ 2010-06-11 17:30 arong.NET 阅读(576) 评论(0) 推荐(0)
C#----DataGridView控件60招(一) [转]
摘要:1. DataGridView当前的单元格属性取得、变更 2. DataGridView编辑属性 3. DataGridView最下面一列新追加行非表示 4. DataGridView判断当前选中行是否为新追加的行 5. DataGridView删除行可否设定 6. DataGridView行列不表示和删除 1.当前的单元格属性取得、变更 [C#] '当前选中单元的值Console.WriteLi... 阅读全文
posted @ 2010-06-11 17:29 arong.NET 阅读(328) 评论(0) 推荐(0)
对话框Dialog总结(转)
摘要:对话框中我们常用了以下几种:  1、文件对话框(FileDialog) 它又常用到两个:   打开文件对话框(OpenFileDialog)   保存文件对话(SaveFileDialog)  2、字体对话框(FontDialog)  3、颜色对话框(ColorDialog)  4、打印预浏对话框(PrintPreviewDialog)  5、页面设置(PrintDialog)  6、打印对话框(... 阅读全文
posted @ 2010-06-11 13:55 arong.NET 阅读(328) 评论(0) 推荐(0)
C#判断某软件是否安装
摘要:代码Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--privatevoidbutton1_Click(objectsender,EventArgse){if(checkAdobeReader()==true){MessageBox.Show("有安裝A... 阅读全文
posted @ 2010-06-11 13:48 arong.NET 阅读(1569) 评论(0) 推荐(0)
C#加密方法汇总(转)
摘要:方法一: 02//须添加对System.Web的引用 03using System.Web.Security; 0405... 0607/// <summary> 08/// SHA1加密字符串 09/// </summary> 10/// <param name="source">源字符串</param> 11/// <returns>... 阅读全文
posted @ 2010-04-30 14:58 arong.NET 阅读(306) 评论(0) 推荐(0)
C#继承
摘要:C#的继承与 C++ 等语言一个重要的不同,就是只能从一个类中继承,这是开发者在权衡了从多个类C#继承的优势与劣势作出的结果。不过,可以从接口继承。另外,继承可传递。构造函数和析构函数不能被继承。初始化基类可以在派生类构造函数中添加初始化基类的代码。代码Code highlighting produced by Actipro CodeHighlighter (freeware)http://ww... 阅读全文
posted @ 2010-03-29 14:47 arong.NET 阅读(330) 评论(0) 推荐(0)
C#接口和抽象类技术特点
摘要:一、C#抽象类:C#抽象类是特殊的类,只是不能被实例化;除此以外,具有类的其他特性;重要的是抽象类可以包括抽象方法,这是普通类所不能的。抽象方法只能声明于抽象类中,且不包含任何实现,派生类必须覆盖它们。另外,C#抽象类可以派生自一个抽象类,可以覆盖基类的抽象方法也可以不覆盖,如果不覆盖,则其派生类必须覆盖它们。二、C#接口:C#接口是引用类型的,类似于类,和抽象类的相似之处有三点:1、不能实例化;... 阅读全文
posted @ 2010-03-29 14:42 arong.NET 阅读(371) 评论(0) 推荐(0)
C# 生成不重复的随机数
摘要:我们来看一个实例:有一个一维数组,一共有10个元素,如何生成非负随机数来填充这个数组。也就是说,我们如何生成10个不重复的非负数。如果我们直接用随机数的方式来做,肯定不行。因为,理论上来讲,无论如何,这10个数,始终存在重复数的可能,只是概率的高低而已。那么,我们如何生成真正不重复随机数了?我这里的原理是这样:1.设定一个数组,用来保存原始的非负数,这个数组的大小可以根据需要进行设定。这里设定为1... 阅读全文
posted @ 2010-03-25 10:42 arong.NET 阅读(1002) 评论(0) 推荐(0)
[转]程序实现调用迅雷(以C#为例)
摘要:1.首先导入DLL添加引用 -> COM -> ThunderAgent 1.0 Type Library(前提是已安装迅雷)或者C:\Program Files\Thunder Network\Thunder\ComDlls\ThunderAgent_Now.dll(路径可能有所不同)2.代码:THUNDERAGENTLib.AgentClass agent = new THUNDE... 阅读全文
posted @ 2009-08-19 16:40 arong.NET 阅读(402) 评论(1) 推荐(0)
ListView数据导出至Excel
摘要:[代码] 阅读全文
posted @ 2009-07-10 15:55 arong.NET 阅读(265) 评论(0) 推荐(0)
利用.NET反射机制实现IList到DataTable转换
摘要:本文意义并不仅仅是为了介绍说明如何将IList转换为DataTable而是给出个利用反射来实现对各种数据结构(集合类)相互转换通用思路方法编写思路.相信很多使用过Nhibernate朋友都知道通过NH访问数据库数据都是以ILIST形式返回这就为我们在.NET中使用传统数据绑定造成了不便由于NH返回ILIST所装载对象往往都是区别我们会为每个返回LIST单独编写转换思路方法而利用反射机制却可以做成通... 阅读全文
posted @ 2009-06-12 16:03 arong.NET 阅读(536) 评论(1) 推荐(0)