随笔分类 -  .NET开发

摘要:当程序以Windows Services形式启动时当前路径不对@(操作系统)[博客|dotNet]很多时候我们需要将我们的程序写成利用Windows服务的形式来让它能够自启动。今天遇到一个问题,当一个程序注册成Windows Services的形式启动的话,当前程序的CurrentDirectory... 阅读全文
posted @ 2014-07-09 19:24 imjustice 阅读(625) 评论(0) 推荐(0) 编辑
摘要:.NET中Dictionary是非常常用的key-value的数据结构,也就是其实就是传说中的哈希表。.NET中还有一个叫做Hashtable的类型,两个类型都是哈希表。这两个类型都可以实现键值对存储的功能,区别就是一个是泛型一个不是并且内部实现有一些不同。今天就研究一下.NET中的Dictiona... 阅读全文
posted @ 2014-07-03 07:49 imjustice 阅读(7582) 评论(15) 推荐(8) 编辑
摘要:原文链接:http://csharpindepth.com/Articles/Chapter12/Random.aspx随机数当你在Stack Overflow上看到看到某个问题标题当中有“随机”这个词,你几乎能够肯定这和其他很多问题类似的基础的问题。这篇文章讲述了为什么随机这个概念引起了这么多的问题,以及如何去解决它们。问题Stack Overflow上的问题通常是这样的:我使用Random.Next去产生随机数,但是方法一直返回同一个值。每一次跑这个随机数都会改变,但是这个方法会产生很多相同的随机数。代码如下:// Bad code! Do not use!for (int i = 0; 阅读全文
posted @ 2014-01-06 07:35 imjustice 阅读(1961) 评论(4) 推荐(6) 编辑
摘要:上回写了关于SecureString的特征和为什么我们要使用它,这篇继续研究研究这个SecureString。**主要内容:**- SecureString与String之间的转换- SecureString的基本操作- 如何销毁一个String?##SecureString与String之间的转换###SecureString --> String的转换我们可以使用[Marshal类](http://msdn.microsoft.com/en-us/library/system.runtime.interopservices.marshal(v=vs.110).aspx)提供的一些方法 阅读全文
posted @ 2013-12-05 07:51 imjustice 阅读(2366) 评论(0) 推荐(1) 编辑
摘要:客官请听题,请写一段代码从控制台上读取用户输入密码。不过有几点在实现的时候需要特别注意:1. 最基本的是用户输入的不应该直接明文显示出来,需要用特殊字符显示。2. 不要用明文储存用户输入的密码。3. 要考虑到一些特殊按键的输入。自己写写试试看?下面是我的实现:private SecureString ReadPassword(){ ConsoleKeyInfo key; SecureString password = new SecureString(); key = Console.ReadKey(true); while (key.Key != ConsoleKey... 阅读全文
posted @ 2013-11-21 07:44 imjustice 阅读(2126) 评论(2) 推荐(2) 编辑
摘要:Dispose模式是.NET中很基础也很重要的一个模式,今天重新复习一下相关的东西并记录下来。什么是Dispose模式?什么时候我们该为一个类型实现Dispose模式使用Dispose模式时应该注意什么?怎样实现一个Dispose模式?Dispose模式的例子什么是Dispose模式?要知道什么是Dispose模式必须先了解两个概念:资源和GC的基本原理。资源指的是一些类似于Windows句柄,数据库连接的非内存的一些本地资源,这些资源无法被运行时本身管理,需要程序员自己去申请和释放。当一些托管类型中对这些资源进行一定的封装的时候,我们就需要妥善的去处理他们,比如说在不用的时候释放到这些资源以 阅读全文
posted @ 2013-07-11 20:24 imjustice 阅读(3870) 评论(0) 推荐(0) 编辑
摘要:Windows性能监视器是一个很好用的自带监视工具,对于一些基本简单的监视需求可以轻松满足。本文主要总结了一下如何将自己应用中的一些性能数据暴露到性能监视器上方便管理。什么?不知道什么是Windows性能监视器?“Microsoft管理控制台(MMC)管理单元,提供用于分析系统性能的工具。仅从一个单独的控制台,即可实时监视应用程序和硬件性能,自定义要在日志中收集的数据,定义警报和自动操作的阈值,生成报告以及以各种方式查看过去的性能数据。”- MSDN[1]使用场景需要记录自己开发的应用中一些性能方面的数据,比如说我有一个WCF的应用,我需要记录下来每分钟应用处理的请求数量,请求的平均处理时间。 阅读全文
posted @ 2013-07-02 22:38 imjustice 阅读(2802) 评论(1) 推荐(1) 编辑
摘要:PDB全称Program Database,不知道中文翻译叫什么。相信使用过VS的人对于这个拓展名的文件不会陌生,这个文件主要会存储对应模块(dll或者exe)内部的所有符号,以及符号对应的地址、文件名和行号。这个文件会在我们调试的时候被使用到,这个东西可以理解为调试的时候应用程序和源文件之间的一个桥梁。正是归功于这个文件,我们才能在debug的时候看到程序当前执行相对应的代码和监视到一些变量。PDB文件什么时候产生?PDB文件是在我们编译工程的时候产生的,它是和对应的模块(exe或dll)一起生成出来的。我们一般可能不会意识到PDB文件的重要性,因为如果只是我们本地进行开发,我们总是能够进行 阅读全文
posted @ 2013-06-07 20:32 imjustice 阅读(18170) 评论(21) 推荐(36) 编辑