C#结束Windows进程
注意:像IE、记事本在任务管理器中的名称是iexplore.exe、notepad.exe,在上边程序中不能带扩展名!
注意:像IE、记事本在任务管理器中的名称是iexplore.exe、notepad.exe,在上边程序中不能带扩展名!
VB.NET C#
using System; using System.Collections.Generic; using System.Text; namespace ConsoleApplication1 { /// <summary> /// 简单的字符串加密/解密类 /// </summary> public class Key { /// <summary> /// 字符串加密 /// </summary> /// <param name="str">待加密字符串</param> /// <returns></returns> public s…
在Web应用程序中,有时需要做个接口,该接口能接收以http get或post方式传递过来的数据,进行适当处理后在页面中输出结果返回给其他应用程序,显然,在页面中不能有html代码,所以我们得手工将全部html代码删除: Query.aspx: Query.aspx.cs: 使用一般处理程序(.ashx),我们就可以不必理会html相关内容,将精力放在代码上: Query.ashx: ---------------------------------------------------------------------- 说明:运行一般处理程序默认的代码会提示:文档的顶层无效。按下边修改即可:
在Windows服务中引用了自定义的程序集,之后程序集升级了,怎么更新服务中旧的程序集呢?直接替换吗?还是要卸载服务后替换程序集再次安装? 测试结果 ·无法直接替换。系统出错提示:无法复制 ClassLibrary1: 文件正在被另一个人或程序使用; ·可以先卸载服务更新后再安装,即可完成更新; ·更简单的方法:先停止服务,这时替换程序集不会报错,替换完后再启动服务即可;
C#转换类Convert提供了一些方法用于进制转换: public static int ToInt32(string value, int fromBase) //任意进制转为十进制 public static string ToString(int value, int toBase) //十进制转为任意进制 例如:
方法1:在VS2005中直接添加Web引用,这种方法我们平时最为常用,以后在VS2005可直接更新,比较方便。详见《使用C#创建一个简单的Web服务》一文。 方法2:使用VS2008提供的命令行工具wsdl生成Web服务的代理类,再将代理类添加到项目中使用,和使用自定义类一样,缺点是每次Web服务更新后得手工生成新的代理类。步骤如下: ·打开Visual Studio 2005 命令提示工具; ·执行命令:wsdl http://localhost:20068/WebServices/Service.asmx?WSDL,将生成Service.cs代理类文件;
根据需求我们定义了一个应用程序基类App,这些类在运行前都必须先配置一些信息,App基类代码如下: 后来我们将配置信息移到另一个类AppStartInfo中: AppStartInfo和Web应用程序多层结构中的实体类非常相似,后来又想这样没什么意思,两个明明相关的两个类却被弄成毫无关系,希望App有个AppStartInfo类型的属性: 调用示例: 后来发现还有其他的赋值方法: 这样AppStartInfo就完全是为App服务的,相当于是App的附属类,想想System.Diagnostics.Process对象的StartInfo属性,是不是也是这样子的?
恒定类型(immutable types)其实很简单,就是一但它们被创建,它们(的值)就是固定的。如果你验证一些准备用于创建一个对象的参数,你知道它在验证状态从前面的观点上看。你不能修改一个对象的内部状态使之成为无效的。在一个对象被创建后,你必须自己小心翼翼的保护对象,否则你不得不做错误验证来禁止改变任何状态。恒定类型天生就具有线程完全性的特点:多访问者可同时访问相同的内容。如果内部状态不能修改,那么就不能给不同的线程提供查看不一致的数据视图的机会。恒定类型可以从你的类上安全的暴露出来。调用者不能修改对象的内部状态。恒定类型可以很好的在基于哈希代码的集合上工作。以Object.GetHashCode()方法返回的值,对同一个实例是必须相同的(参见原则10),而这正是恒定类型总能成功的地方。 并不是所有的类型都能成为恒定类型的。如果它可以,你需要克隆一个对象用于修改任何程序的状态了。这就是为什么同时推荐使用恒定类型和原子类型数据了。把你的对象分解为自然的单一实体结构。一个Address类型就是的,它就是一个简单的事,由多个相关的字段组成。改变其中一个字段就很可能意味着修改了其它字段。一个客户类型不是一个原子类型,一个客户类型可能包含很多小的信息块:地址,名字,一个或者多个电话号码。任何一个互不关联的信息块都可以改变。一个客户可能会在不搬家的情况下改变电话号码。而另一个客户可能在搬了家的情况下保留原来的电话号码。还有可能,一个客户改变了他(她)的名字,而没有搬家也没有改电话号码。一个客户类型就不是原子类型;它是由多个不同的恒定的组成部份构成的:地址,名字,以及一个成对出现的电话号码集合。原子类型是单一实体:你很自然的用原子类型来取代实体内容。这一例外会改变它其中的一个组成字段。 下面就是一个典型的可变地址类的实现:…
有时我们要用Reflector看下某个C#类成员的代码,但却不知道这个类在哪个dll中,下边介绍两种方法可解决这个问题。 1.MSDN查找法 MSDN在每个类的介绍页面中都有标明它在隶属于哪个程序集及其所在的dll文件,所以我们只要到MSDN中看下就知道了。例如要查询System.IO.File隶属于哪个程序集,打开下边页面即可知道: http://msdn.microsoft.com/zh-cn/library/system.io.file.aspx 2.借用VS2008自带的对象浏览器查找 ①.在对象浏览器中搜索System.IO.File(带命名空间以便精确查找),然后"浏览定义": ②.从File类向上找,一直定位到程序集mscorlib,选中程序集,在右侧即可看到程序集所在的dll文件完整路径: