c# 其他技术学习

1.注册表编辑

为了方便对注册表进行操作,.NET提供了Registry类和RegistryKey类

2.API函数的应用

(1)自定义特性的代码:在类、属性、方法的上方加上“[]”的代码

(2)有个动态链接库

GDI32.dll:用于设备输出的图形设备接口(GDI)方法

Kernel32.dll:用于内存管理和资源处理的低级别系统方法

User32.dll:用于消息处理、计时器、菜单和通信的Windows管理方法

3.反射的应用

使用反射操作程序集分为如下两部:

(1)加载反射的程序集

(2)使用Type类的方法调用或枚举程序集中的类型

4.C#调用C++

有三种方法:(1)P/Invoke(只对C APIs可用)(2)COM objects(3)C++/CLI

5.调用外部程序

  1. Process p = new Process();
  2. p.StartInfo.FileName  = "cmd.exe";
  3. p.StartInfo.Arguments = "/c dir *.cs";
  4. p.StartInfo.UseShellExecute = false;// 不使用系统外壳程序启动,重定向时些值必须为false
  5. p.StartInfo.RedirectStandardOutput = true;
  6. p.StartInfo.CreateNoWindow = true;// 不创建窗口
  7. p.Start();
  8. string output = p.StandardOutput.ReadToEnd();
  9. p.WaitForExit();
  1. StringCollection values = new StringCollection();
  2. var proc = new Process
  3. {
  4. StartInfo = new ProcessStartInfo
  5. {
  6. FileName = "openfiles.exe",
  7. Arguments = "/query /FO CSV /v",
  8. UseShellExecute = false,
  9. RedirectStandardOutput = true,
  10. RedirectStandardError = true,
  11. CreateNoWindow = false
  12. }
  13. };
  14. proc.Start();
  15. proc.OutputDataReceived += (s,e) => {
  16. lock (values)
  17. {
  18. values.Add(e.Data);
  19. }
  20. };
  21. proc.ErrorDataReceived += (s,e) => {
  22. lock (values)
  23. {
  24. values.Add("! > " + e.Data);
  25. }
  26. };
  27. proc.BeginErrorReadLine();
  28. proc.BeginOutputReadLine();
  29. proc.WaitForExit();
  30. foreach (string sline in values)
  31. MessageBox.Show(sline);

6.获取当前日期时间

http://blog.163.com/ljq086@126/blog/static/549639712010112921658843/

7.dotNet插件系统开发模式

什么叫插件从大一点的概念讲就是我们开发的软件是由很小的模块组成,每一块都能成功的装卸,使我们的软件成为一个有机体,在发生重大事故、改良优化
等等的时候,我们不需要重新编译我们的系统就能很方便的进行升级替换进行使用;这样的开发模式就是插件系统开发模式。一个大型的系统,不能简简单单的用三
层或者MVC来概括,我们要站在一个更高的角度去思考程序,每当我们开始一个新系统的架构设计时,我们不能总是保守的或是“封建”式的使用以往的思想模
式,是否深思熟虑过这些开始模式在我们当前系统中是否可用或者说是否能发挥模式的最大效果。在开始执行前我们需要读取插件所在的路径然后进行插件对象的全
路径保存,以便在后面运行时方便加载;到了Run开始真正的执行我们的应用程序了,我们需要根据插件的类型进行加载,插件必须具备类型的原则,用在什么地
方的,好比汽车的零部件,我们有明确的规定,这里的实现我们可以用接口进行标识;当程序开始结束的时候,我们需要释放各个插件所占用的系统资源。

参考:http://wangqingpei557.blog.51cto.com/1009349/584806

8.Encoding

处理字符编码。
上一篇:laravel获取当前的url以及当前的基础域名方法汇总


下一篇:BZOJ 1568 Blue Mary开公司