值类型与引用类型和装箱与拆箱
摘要:值类型与引用类型和装箱与拆箱我写博客的目的:第一点也是我写博客最重要的一点,就是通过把自己所理解技术写下来,以巩固自己学习的知识(可能不像其他园友那样只是单纯的为了和大家分享自己的技术。。。嘿嘿)。因为自己是学数学专业的,去年三月份刚刚接触编程这么个东西,知识不像计算机专业的同学那么系统,因此也想通过写博客来记录自己学习的知识,将来回过头来翻看。第二点分享我所理解的给大家,从而希望对读者有一定的帮助。(这一点肯定是有的,^_^)。第三点就是也能通过通园友的探讨和批评建议中提高自己。所以希望园友还有各路大神们留下宝贵的墨笔,小子在此感激不尽。言归正文,前几天面试(嘿嘿,是我们技术老大去面,我属于
阅读全文
序列化和反序列化的几种方式(DataContractSerializer)
摘要:序列化和反序列化的几种方式(DataContractSerializer)DataContractSerializer类使用提供的数据协定,将类型实例序列化和反序列化为 XML 流或文档。无法继承此类。命名空间:System.Runtime.Serialization程序集:System.Runtime.Serialization(在 System.Runtime.Serialization.dll 中)备注 使用 DataContractSerializer 类可以将类型实例序列化和反序列化为 XML 流或文档。 通过将 DataContractAttribute 特性应用于类,而将Data
阅读全文
操作文件方法简单总结(File,Directory,StreamReader,StreamWrite )
摘要:操作文件方法简单总结(File,Directory,StreamReader,StreamWrite )对于文件夹,文件档的操作一直处于一知半解状态,有时间闲下来了,好好练习了一把,对文档,文件的操作有了一个基本的认知,若要深入了解,还是得通过实际的项目才行了,好了废话不多说,上酸菜!!一 基本介绍 操作文档,文件夹,需要用到的类 1Directory(静态类) : 用于创建、移动和删除等操作通过目录和子目录 DirectoryInfo(非静态): 2File(静态类) :提供用于创建、复制、删除、移动和打开文件的静态类,并协助创建 FileStream 对象 FileInfo(...
阅读全文
运用Unity实现依赖注入[结合简单三层实例]
摘要:运用Unity实现依赖注入[结合简单三层实例]一:理论部分依赖注入:这是 Ioc 模式的一种特殊情况,是一种基于改变对象的行为而不改变类的内部的接口编程技术。开发人员编写实现接口的类代码,并基于接口或者对象类型使用容器注入依赖 的对象实例到类中。用于注入对象实例的技术是接口注入、构造函数注入、属性(设置器)注入和方法调用注入。Unity是微软企业库一部分,是一个轻量级、可扩展的依赖注入容器,支持构造函数、属性和方法调用注入;针对依赖注入以前我也写过一篇结合三层的文章:spring.net 结合简单三层实例二:实例简介1:本实例将通过一个简单的三层演示使用Unity实现依赖注入,并把相应的具体实
阅读全文
C#奇葩关键字
摘要:C#奇葩关键字——忐忑那就认识认识吧,可是又太多,所以也只能是想到哪里是哪里,我们这就让思绪自由飞翔一会吧!1、@这个东东看似和邮件有关啊,但是在C#的世界里,可跟邮件没有一毛钱关系,它是string的女朋友(当然了string有N多女友),二者结合就可以发挥作用了。你可以给它起个名字,叫做“逐字字符串”,或者别的什么东东都行,这都不重要,关键你要会泡它~在处理字符串时,那些个字符串转义字符我们可伤不起,一个个的记又记不住,用了还要查,麻烦的不行,那@就是为解决这个而诞生的,直接让字符串原样输出有木有?什么sql字符串了,还有路径啥了的,统统搞定string sql = @"sele
阅读全文
C#制作高仿360安全卫士窗体3
摘要:C#制作高仿360安全卫士窗体(三)距上篇C#制作高仿360安全卫士窗体(二)也将近一个多月了,这个月事情还是像往常一样的多。不多我也乐在其中,毕竟我做的是我喜欢做的东西。今天特地抽空把怎么制作文本框写一下。同时也希望有爱好这些玩意的同仁和我进行交流... 文本框的开发比起按钮开发还是有一点不同,因为我这里主要是给文本框做美化,所以不需要完完全全的进行自己开发。只是重写它的某些事件,然后展现不同的效果。下面是运行后的效果。这个文本框实现了多行以及鼠标进入移出等事件的效果,那么开发这个素材只有一个也是从之前360皮肤包里面提取出来进行修改的:一、嵌入资源将以上素材另存为,在解决方案中Images
阅读全文
C#编写WINNT服务
摘要:C#编写WINNT服务,随便解决安卓开发遇到的5037被众多程序无节操占用的问题需求分析:最近重新开始学习安卓开发,好久不用的ADT集成开发环境频繁遇到不能在仿真机和真机上调试的问题,也就是本人另一篇博文描述的ADB(AndroidDebugBridge)监控的5037被金山词霸暗自集成的金山手机助手、腾讯手机管家、豌豆荚等众多软件围攻的情形。需要详细了解,请移步:金山词霸你占我5037端口干嘛,费了你。那些流氓软件给我们安卓开发人员带来了很多烦恼啊,它们凭什么那么没节操?手动结束进程还真麻烦,有时还不知道是那个程序在作怪呢。所以想了下,写个WINNT服务检查当前活动的进程,如果有?adb这样
阅读全文
C#通过属性名称获取(读取)属性值的方法
摘要:C#通过属性名称获取(读取)属性值的方法之前在开发一个程序,希望能够通过属性名称读取出属性值,但是由于那时候不熟悉反射,所以并没有找到合适的方法,做了不少的重复性工作啊!然后今天我再上网找了找,被我找到了,跟大家分享一下。其实原理并不复杂,就是通过反射利用属性名称去获取属性值,以前对反射不熟悉,所以没想到啊~不得不说反射是一种很强大的技术。。下面给代码,希望能帮到有需要的人。 1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 6 namespace P.
阅读全文
C#表达式树的初步了解
摘要:C#表达式树的初步了解在很早以前就听说过表达式树了,但并没有去了解它。虽然自己用过linq to sql和linq to entity,但也就用着就用着,并没有去深究c#代码怎么会生成sql代码而不是IL。废话不多说了,开写吧!.net里表达式树核心概念就是:将代码作为数据。它将一些代码表示为一个对象树,树中的每个节点本身都是一个表达式,不同的表达式类型代表能在代码中执行不同操作:二元操作,一元操作,方法调用等等。 System.Linq.Expressions命名空间包含了代表表达式的各个类。所有的表达式类都从Expression类派生,Expression是个抽象类,主要包含的是一些静态.
阅读全文
日志模块
摘要:日志模块对于一个系统来说,日志模块是必不可少的,它能给后面系统的维护和bug的修复,带来极大的方便。.net的日志模块有很多,比较流行的有Log4Net,NLog,还有微软企业库的日志模块,我采用的是Log4Net,1、接口 由于日志是所有模块都要用到的,因此在核心模块(Core)中实现,为了解耦,自定义一个日志接口ILogger ,参照Log4Net的日志分级,也分为5级,每一级别有1-2个方法, 代码如下。/// /// 日志操作 /// public interface ILogger { /// /// 写日志 日志级别为Deb...
阅读全文
业务接口+UI层的设计(基于Castle实现的Repository)
摘要:业务接口+UI层的设计(基于Castle实现的Repository)Repository层设计的文章见:【http://www.cnblogs.com/yomho/p/3297042.html】一、概要设计上面Reposity应该为 Repository特此更正,也不打算作图更正了。二、业务Server层业务层Server是承Repository层,启UI层的重要层,UI层的数据和Repository层的数据传递必须经过它业务层的扩展非常必要所以采用IServer的设计方式接口设计如下: 1 namespace Yom.NFramework2_0 2 { 3 public interf...
阅读全文
mono中发送邮件并保存本次收件人的地址
摘要:mono中发送邮件并保存本次收件人的地址在ios端mono开发中,发送邮件可以选择调用ios原生email程序。有两种方式实现这种功能,一是程序跳转到ipad中email程序,另外一种是将发送邮件的界面在自己应用里弹出。首先第一种方式的代码: string sendEmail = "mailto:收件人邮箱地址?cc=发件人邮箱地址&subject=主题&body=邮件内容"; UIApplication.SharedApplication.OpenUrl(NSUrl.FromString(sendEmail));这种方式会直接打开ipad本地email程序
阅读全文
抽取非基本验证到规则文件
摘要:抽取非基本验证到规则文件基本验证与业务验证,基本验证就是始终保持不变的验证规则,可以通过如下硬编码实现:public class Order { [Required] [Range(typeof(decimal), "1", "10000")] public decimal Price { get; set; } [Required] [StringLength(30)] public string Customer { get; set; } [Required(AllowEmptyStr...
阅读全文
讲讲Linq to SQL映射(基础篇)
摘要:讲讲Linq to SQL映射(基础篇)这篇主要讲Linq to SQL基于属性的映射。即映射数据库,映射表,映射列,映射关系,映射存储过程,映射函数。然而创建这种映射有三种方法,他们分别是ORD工具,SQLMetal命令行工具,以及编写手工代码创建。 咱们首先了解下手工创建属性映射的方法,这样你就能看懂基于工具产生的代码了。他们的区别也就是使用工具效率会更高些,但前提需要先设计好数据库,这样就可以直接通过数据库的结构输出你的实体类。1、映射数据库映射数据库主要通过Database属性来指定,引用命名空间System.Data.Linq.Mapping;具体看如下代码://这里在连接的时...
阅读全文
C#计算两个文件的相对目录算法
摘要:C#计算两个文件的相对目录算法楼主大菜鸟一只,第一次写技术博客,如果有概念错误或代码不规范的地方,还请各位多多批评指正。话不多说,来看题: 前一阵子开发了一个用户控件,里面调用了很多css,js等资源文件,而引用控件的页面所在目录是不同的。问题出来了:如果目录不同,那么控件里引用css,js资源文件的路径也会相应变化。现在已知两个文件相对于网站根目录的路径,如何计算相对路径呢?请看代码: 1 public string GetRelativePath(string path1, string path2) 2 { 3 string[] path1Array = pat...
阅读全文
TransactionScope类
摘要:微软的TransactionScope类是个好玩意 最近发现微软自带的TransactionScope(.Net Framework 2之后)是个好东东,提供的功能也很强大。 首先说说TransactionScope是什么,并能为我们做什么事情。其实看Transaction(事务)这个单词,我想大家已经能猜到个大概。不同于SqlTransaction的事务,因为现在做的项目都有不同的分层架构,如果不在数据库操作层里面做的话,那么使用TransactionScope是一种理想的方式,它是一个轻量级的事务类。所谓事务,就好比两个串联的开关,控制着一个灯泡,这两个开关可以理解为一个独立的单位,要..
阅读全文
基于 Aliexpress API 的小程序 : 批量 Copy 产品到不同的店铺
摘要:第一个基于 Aliexpress API 的小程序 : 批量 Copy 产品到不同的店铺还没来得及用 API 重写软件, 先写个小程序来缓解一下手工压力: 批量Copy 产品到不同的店铺.开网店 ,无论是在阿里上,还是在eBay 上, 大部分小卖家都是一人操作好几个店, 七姑八姨的身份证都找来开店,只为了让订单多点. 相比那些靠拍马屁拍的厚颜无耻而上位的, 这些人更值得成为我的榜样: 虽然辛苦,但都是血汗钱. 拍马屁来的轻松, 但终究是个屁, 保不准哪天马拍你一手”史”!不扯了,扯多了森森的蛋疼.由于这个小工具具有商业价值,拿出去肯定有人愿意买,所以不提供下载,本文只聊聊一些其它的.先看看丑陋
阅读全文
PDF.NET开发框架性能剖析
摘要:PDF.NET开发框架性能剖析前俩天发布了关于PDF.NET开发框架对Mysql Sqlite PostgreSQL数据库分页支持的个人看法,说明了本人对框架的一些介绍和看法。今天我们一起思考一些问题。1.装箱与拆箱EntityBase.cs 1 private object[] values; 2 /// 3 /// 属性值列表 4 /// 5 public virtual object[] PropertyValues 6 { 7 get 8 { 9 if (values == null)10 {11 values...
阅读全文
使用二进制协议 (附源码)
摘要:使用二进制协议 (附源码)在网络上,交互的双方基于TCP或UDP进行通信,通信协议的格式通常分为两类:文本消息、二进制消息。文本协议相对简单,通常使用一个特殊的标记符作为一个消息的结束。二进制协议,通常是由消息头(Header)和消息体(Body)构成的,消息头的长度固定,而且,通过解析消息头,可以知道消息体的长度。如此,我们便可以从网络流中解析出一个个完整的二进制消息。两种类型的协议格式各有优劣:文本协议直观、容易理解,但是在文本消息中很难嵌入二进制数据,比如嵌入一张图片;而二进制协议的优缺点刚刚相反。在客户端服务器通信demo(附源码)一文中,我们演示了如何使用了相对简单的文本协议,这篇文
阅读全文
C#利用ODP.NET往oracle中高效插入百万数据
摘要:C#利用ODP.NET往oracle中高效插入百万数据由于工作的原因,要使用winform来处理大量的数据,但是c#自带的System.data.OracleClient效率不是很高,在网上找了很久,找到了ODP.NET,是oracle为c#提供的。貌似从vs2010开始,微软开始推荐使用ODP.NET。效率的话,在没有索引的情况下,100万数据,不到10秒。 1.从官网上下载ODAC,如果你是32位的机器,那下载32的;64位的,就下载64的。我的win7, 64位,所以我下载的是ODAC1120320_x64,具体地址: 64位:http://www.oracle.com/techne..
阅读全文