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.调用外部程序
- Process p = new Process();
- p.StartInfo.FileName = "cmd.exe";
- p.StartInfo.Arguments = "/c dir *.cs";
- p.StartInfo.UseShellExecute = false;// 不使用系统外壳程序启动,重定向时些值必须为false
- p.StartInfo.RedirectStandardOutput = true;
- p.StartInfo.CreateNoWindow = true;// 不创建窗口
- p.Start();
- string output = p.StandardOutput.ReadToEnd();
- p.WaitForExit();
- StringCollection values = new StringCollection();
- var proc = new Process
- {
- StartInfo = new ProcessStartInfo
- {
- FileName = "openfiles.exe",
- Arguments = "/query /FO CSV /v",
- UseShellExecute = false,
- RedirectStandardOutput = true,
- RedirectStandardError = true,
- CreateNoWindow = false
- }
- };
- proc.Start();
- proc.OutputDataReceived += (s,e) => {
- lock (values)
- {
- values.Add(e.Data);
- }
- };
- proc.ErrorDataReceived += (s,e) => {
- lock (values)
- {
- values.Add("! > " + e.Data);
- }
- };
- proc.BeginErrorReadLine();
- proc.BeginOutputReadLine();
- proc.WaitForExit();
- foreach (string sline in values)
- 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
c# 其他技术学习的更多相关文章
- IT软件人员的技术学习内容(写给技术迷茫中的你) - 项目管理系列文章
前面笔者曾经写过一篇关于IT从业者的职业道路文章(见笔者文:IT从业者的职业道路(从程序员到部门经理) - 项目管理系列文章).然后有读者提建议说写写技术方面的路线,所以就有了本文.本文从初学者到思想 ...
- IT技术学习指导之Linux系统入门的4个阶段(纯干货带图)
IT技术学习指导之Linux系统入门的4个阶段(纯干货带图) 全世界60%的人都在使用Linux.几乎没有人没有受到Linux系统的"恩惠",我们享受的大量服务(包括网页服务.聊天 ...
- EMV技术学习和研究(转)
刚开始学习EMV&PBOC,磕磕碰碰,感谢xuture的<EMV技术学习和研究>给了很大帮助,让我少走了很多弯路,也感谢广俊.surge.艾零.小SO.Spinach.龙行天下的帮 ...
- Java多线程技术学习笔记(二)
目录: 线程间的通信示例 等待唤醒机制 等待唤醒机制的优化 线程间通信经典问题:多生产者多消费者问题 多生产多消费问题的解决 JDK1.5之后的新加锁方式 多生产多消费问题的新解决办法 sleep和w ...
- 【记录一次windows技术学习】使用笔记本DOS命令搭建WLAN热点
[记录一次windows技术学习]使用笔记本DOS命令搭建WLAN热点 时间:2017-10-14 22:36:13 撰写者:AK末影人 [转发请注明出处] --------------------- ...
- 绝版珍珍藏:web前端技术学习指南
绝版珍珍藏:web前端技术学习指南 优秀的Web前端开发工程师要在知识体系上既要有广度和深度!应该具备快速学习能力. 前端开发工程师不仅要掌握基本的Web前端开发技术,网站性能优化.SEO和服务器端的 ...
- Android so注入(inject)和Hook技术学习(三)——Got表hook之导出表hook
前文介绍了导入表hook,现在来说下导出表的hook.导出表的hook的流程如下.1.获取动态库基值 void* get_module_base(pid_t pid, const char* modu ...
- 亲爱的,我是一条Linux运维技术学习路径呀。
根据我的经验,人在年轻时,最头疼的一件事就是决定自己这一生要做什么.在这方面,我倒没有什么具体的建议:干什么都可以,但最好不要写小说,这是和我抢饭碗.总而言之,干什么都是好的:但要干出个样子来,这才是 ...
- Java技术学习路线
转载 作者:David 链接:https://www.zhihu.com/question/25255189/answer/86898400来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商 ...
- C语言主要做哪些方面的开发---一个来自“IT技术学习”微信群的问题及答复
近期,在"IT技术学习"微信群中,有同学问了这样一个问题:C语言主要做哪些方面的开发?在这篇文章中,我想结合自身的经验,对这个问题进行下解答. C语言是计算机及其相关专业(如通信. ...
随机推荐
- BAT及各大互联网公司前端笔试面试题--Html,Css篇
注意 转载须保留原文链接(http://www.cnblogs.com/wzhiq896/p/5931347.html )作者:wangwen896 整理分享出来希望更多的前端er共同进步吧,不仅适用 ...
- 快速幂 --- CSU 1556: Jerry's trouble
Jerry's trouble Problem's Link: http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1556 Mean: 略. ana ...
- 网狐6603手机棋牌游戏源码.rar
网狐6603手机棋牌游戏源码.rar 文件大小: 333 MB 发布一款手机棋牌游戏源码带教程文档! 仅供学习,下载后请务必在24小时内删除! 网狐6603手机棋牌游戏源码 链接:http://p ...
- 无意中在sql日志中发现如下内容,
日期,源,严重性,消息01/06/2015 09:06:13,登录,未知,Length specified in network packet payload did not match number ...
- log4net日志记录
这里是接着上一篇来优化的,上篇:ASP.NET MVC中错误日志信息记录 log4Net是用来记录日志的,可以将程序运行过程中的信息输出到一些地方(文件,数据库,EventLog等),日志就是程序的黑 ...
- C#反射的应用
项目框架中有一个很实用的方法,它用来获取客户端post的数据,并自动赋值到对象各属性,这样后台少写了很多代码.但是对于有主表.子表的表单,框架中没有提供自动给子表对象各属性赋值的方法,每次都要写很多代 ...
- SQLServer获取临时表所有列名或是否存在指定列名的方法
获取临时表中所有列名 select name from tempdb.dbo.syscolumns where id=object_id( '#TempTB') 判断临时表中是否存在指定列名 if c ...
- 从C#中通过Windows窗体添加信息到数据库 (添加学生信息)
如上图所示界面,当我们点击保存按钮时将会将表格中的数据保存到数据库中去,与数据库进行一个交互 第一步我们就是要获取到表格中的数据 string pwd = textpwd.Text; //获得第一次输 ...
- Microsoft.DirectX.DirectSound.dll和Microsoft.DirectX.dll引用,导致项目无法调试问题
最近在做录音功能,用到了Microsoft.DirectX.DirectSound.dll和Microsoft.DirectX.dll两个dll,但是引入后,无法调试项目 具体解决方法: 修改app. ...
- 关闭Eclipse中自动弹出console的功能
当我们使用Eclipse编写代码的时候,一般都会使界面最大化,如果这时tomcat服务器处在运行的状态,那么当后台有打印内容,比如日志输出,代码程序报错输出时,console就会自动弹出,很不方便. ...