随笔分类 - .NET
摘要:前言 : 最近在处理应用程序安装的相关问题。 系统内有使用Window Time Service来完成时间同步的功能。但在启动这个服务的时候。 却发现使用ManagementObject Class控制 WMI的这种方式, 无法将Windows Service启动类型设定为「自动(延迟开始)」。使用Google搜寻之后, 找到了可以使用 Windows SC命令,来做Windows Service的管理。 并且这个方式,可以将Windows Service启动类型设定为「自动(延迟开始)」。本篇文章简单纪录, .NET应用程序如何使用Windows SC命令,来做Windows Service
阅读全文
摘要:前言 : 最近为了多执行绪程序分享数据集合,搞的焦头烂额。 主要的问题点卡在, 当有一条执行绪使用 foreach列举数据集合的时候,另外一条执行绪去变更数据集合。 这时候会发生Exception,通知说在列举的同时数据集合被变更。当下最先想到的解决方案是,使用lock在读写数据集合的时候做锁定。 这样的确可以解决问题, 但是因为不论读写都先lock,这样会降低程序执行的效能。 并且这样的写法,要求使用数据集合的程序代码必须要记得做lock动作,不然会发生错误。上网搜寻到这篇「再谈程序多任务(III)─执行绪安全与数据集合」,刚好解决了我遇到的问题点。:D整篇文章主要的思路就是, ...
阅读全文
摘要:前言 : 我们在撰写自定义 Configuration时,会先定义好对应的自定义 ConfigurationSection 与 Config档让程序代码知道该如何颇析数据。<sample propertyA="Clark001"> <propertyCollectionB> <add name="Clark002" value="Clark003" /> </propertyCollectionB> </sample>public class SampleSection :
阅读全文
摘要:前言 :自定义Configuration区段的数据读取,先前小朱有写了一系列的文章。本篇文章描述,如何使用程序代码做自定义Configuration的数据写入。注意 :在 Microsoft Visual Studio IDE除错环境下,执行程序写入.config时。程序写入的将会是*.vshost.exe.config,而不是预期中的 *.exe.config。并且程序执行结束之后,IDE会覆盖*.vshost.exe.config成为写入前的状态。因此会误认为程序执行失败。只要编译完毕之后,点选bin目录底下的*.exe执行。再去检查*.exe.config,就可以看到预期中的结果。相关资
阅读全文
摘要:前言 :VS2010内建了测试项目,本篇文章说明测试项目的生命周期。生命周期图 :生命周期范例 :[TestClass]public class UnitTest1{ [AssemblyInitialize()] public static void AssemblyInitialize(TestContext context) { MessageBox.Show("AssemblyInitialize"); } [ClassInitialize()] public static void ClassInitialize(TestContext...
阅读全文
摘要:前言 :应用程序在Vista或是Win7上执行时,有时会有权限不足的问题。 简单的解法是请用户在应用程序图标上右键单击,然后选择以系统管理员身分执行。 但这个动作常常会被使用者忘记。这个问题在VS2008或是VS2010上已经有了解决方案 : (请参考) http://social.msdn.microsoft.com/Forums/zh-TW/1007/thread/ce70e22d-45f7-4903-b8f4-76a159d3002d http://www.dotblogs.com.tw/jjnnykimo/archive/2009/05/08/8346.aspx http://www.
阅读全文
摘要:实作 :1. 建立Windows应用程序项目 2. 建立数据对象 *建立完毕,先建置方案一次。 3. 建立数据源 4. 建立报表 5. 系结报表数据源 *从右边数据源,拖曳数据字段至报表 6. 建立报表窗体 *选择报表后会自动建立TestDataBindingSource7. 建立报表数据 8. 捡视报表
阅读全文
摘要:前言 :在面向对象的程序开发设计上,我们常常强调重用与抽换 : 重用核心的程序代码,抽换特定的模块。但是大多的面向对象的书,只有介绍重用与抽换的理论,并没有介绍实做的时候该怎么写。因为实际开发系统,要完成重用与抽换。牵扯到系统设计、动态加载、Config管理......等等方方面的知识。真的要解释起来,需要的篇幅会是很大一篇。本篇的文章跳过这些复杂的理论面,逐步解说如何实做微软提供的Provider Pattern来实现对象的抽换。Provider Pattern提供了,使用App.config或是web.config来做储存装置,并且实做了对象抽换的功能。依照本篇的模块去做面向对象开发设计的
阅读全文
摘要:前言 :写程序难免,会遇到要使用自定义函式来作对象数组转型。 写了一个对象来做这个动作,跟大家分享。说明 :这个对象的特点为: 1. 使用到才转型。不会在内存,建立整个转型后的数组副本。 2. 可在转型时加入参数。使用范例 :namespace CLK.Collections.ConsoleApplication{ public class User { public string LastName = string.Empty; public string FirstName = string.Empty; } public class D...
阅读全文
摘要:前言 :处理AD数据的时候 常常会需要取得用户的Domain\User数据 可是用户的AD属性却没有这个数据 本篇文章的程序示范,如何取得用户的Domain\User。实作 :using System;using System.Collections.Generic;using System.Text;using System.DirectoryServices;using System.Security.Principal;namespace ConsoleApplication1{ class Program { static void Main(string[]...
阅读全文
摘要:问题 :依照微软技术支持服务这篇文章 如何在 Visual Basic.NET 或 Visual Basic 2005 建立安装项目的 Windows 服务http://support.microsoft.com/kb/317421/zh-tw 建立Windows Service的安装项目 安装之后在计算机的服务里,找不到安装的服务解法 :第一种 : 手动执行 installutil.exe 第二种 : 在安装项目建立自定义动作,项目选择 Windows Service项目的主要输出。 以上两种解法都可以将Windows Service安装在目标计算机上
阅读全文
摘要:前言 :一般在监控文件夹或是档案异动,大多使用FileSystemWatcher类别 但FileSystemWatcher在监控档案建立的事件时 他发出的 Created事件的时间点,是在档案建立开始的当时,而不是档案建立完毕的时间点。 如果直接使用的话,有时会造成建立档案的线程跟监控档案的线程互相冲突 造成『由于另一个进程正在使用档案』的例外产生。改为本篇文章介绍的使用方法及可避免上述问题实作 :using System; using System.Collections.Generic; using System.Text; using System.IO; namespace Cons.
阅读全文