焦林俊

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

2014年7月23日

摘要: .NET异步编程之新利器——Task与Await、Async一.FrameWork 4.0之前的线程世界 在.NET FrameWork 4.0之前,如果我们使用线程。一般有以下几种方式:使用System.Threading.Thread 类,调用实例方法Start()开启一个新线程,调用... 阅读全文
posted @ 2014-07-23 16:04 焦林俊 阅读(409) 评论(0) 推荐(0) 编辑

2014年5月13日

摘要: 一般我们使用了scvutil命令自动生成了服务的客户端代理类:例如:svcutil http://localhost:8000/?wsdl /o:FirstServiceClient.cs命令中http://localhost:8000/?wsdl连接返回一个XML,该XML即为元数据:用以描述如何... 阅读全文
posted @ 2014-05-13 15:50 焦林俊 阅读(1581) 评论(0) 推荐(0) 编辑

2014年5月4日

摘要: [转]C# const和static readonly区别以前只是知道Const和static readonlyd的区别在于const的值是在编译期间确定的,而static readonly是在运行时计算出其值的。今天看到Resharper智能提示让用static readonly修饰的field改... 阅读全文
posted @ 2014-05-04 16:03 焦林俊 阅读(222) 评论(0) 推荐(0) 编辑

2014年2月13日

摘要: 内存中的 XML 处理 基于流的 XML 处理提供了最小的负载,但也只提供了最小的灵活性。在很多 XML 处理场景里,你不会在这么低的层次下工作。 对内存中的 XML 的处理则更加方便,但没有单一、标准的方式。如下所有的类都支持对 XML 的读取和导航:XmlDocument:它是 XML 数据的标准化接口,但对时间要求比较多。XPathNavigator:它提供比 XML DOM 稍快、更有效的模型,并增强了一些搜索功能,但不能修改或保存 XML 。XDocument:为处理 XML 提供一个更直观和有效的 API。从技术上讲,它是 LINQ to XML 的一部分,但即使没有 LINQ 查 阅读全文
posted @ 2014-02-13 18:08 焦林俊 阅读(858) 评论(0) 推荐(0) 编辑

2013年10月12日

摘要: 说来惭愧,接触WPF这么长时间了,今天在写自定义控件时遇到一个问题:运行界面中并没有显示自定义控件,经调试发现原来没有加载Themes中的Generic.xaml。可是为什么在其他solution中可以成功显示呢?后来就google学习了一下WPF中加载资源的相关文档,但都是理论性的介绍。对这个问题还是没有多大的帮助。没有办法只能比较两个solution中的proj有什么不同,打开proj属性,发现application、build、buildEvents...等都一样,后来只能比较assemblyInfo,发现多了[assembly:ThemeInfo(................... 阅读全文
posted @ 2013-10-12 16:51 焦林俊 阅读(2527) 评论(0) 推荐(0) 编辑

摘要: C#操作XML方法集合一 前言先来了解下操作XML所涉及到的几个类及之间的关系 如果大家发现少写了一些常用的方法,麻烦在评论中指出,我一定会补上的!谢谢大家* 1 XMLElement 主要是针对节点的一些属性进行操作* 2 XMLDocument 主要是针对节点的CUID操作* 3 XMLNode 为抽象类,做为以上两类的基类,提供一些操作节点的方法清楚了以上的关系在操作XML时会更清晰一点二 具体操作(C#) 以下会对Xml的结点与属性做增 删 改 查的操作也满足了实际工作中的大部分情况先构造一棵XML树如下,其中也涉及到了写入xml文档的操作 1 public void... 阅读全文
posted @ 2013-10-12 16:03 焦林俊 阅读(624) 评论(0) 推荐(0) 编辑

2013年10月9日

摘要: 在C#中,从Main()方法开始一个默认的线程,一般称之为主线程,如果在这个进行一些非常耗CPU的计算,那么UI界面就会被挂起而处于假死状态,也就是说无法和用户进行交互了,特别是要用类似进度条来实时显示一些提示信息的时候,这种情况就显得很糟糕。如果多开一些线程来完成一些耗时的计算,那么工作线程也是无法如此更新UI界面中的元素的,比如直接显示一个提示信息:label1.Text=outstring,原因很简单UI属于默认的主线程,而线程间是不能这样直接访问彼此的成员的。如果要解决以上的两个问题,那么可以借助C#中的Delegate和控件类中的Invoke()方法来搞定。这里给出的例子比较简单,主 阅读全文
posted @ 2013-10-09 10:26 焦林俊 阅读(1492) 评论(0) 推荐(1) 编辑

2013年9月22日

摘要: 所谓获取WCF的服务元数据(Metadata),归根结点,实际上就是获取服务的终结点(Endpoint)的信息,这是服务公开在外的数据信息,包括Address、Binding与Contract,也就是所谓的ABCs。Juval Löwy在《Programming WCF Services》一书中,用生动形象的棒棒糖表示了终结点的构成:WCF服务可能包含多个终结点,每个终结点相当于是通信的入口,客户端和服务端通过终结点交换信息,如下图所示:因而,如果能够获取终结点的详细信息,有助于我们更好地剖析服务的定义、内容与执行方式。服务有两种方案可以发布自己的元数据。一种是基于HTTP-GET协 阅读全文
posted @ 2013-09-22 11:02 焦林俊 阅读(314) 评论(0) 推荐(0) 编辑

2013年7月18日

摘要: 接Window服务(一)ServiceController方法调用 public partial class Service1 : ServiceBase { public Service1() { InitializeComponent(); this.AutoLog = true; } protected override void OnStart(string[] args) { // TODO: 在此处添加代码以启动服务。 ... 阅读全文
posted @ 2013-07-18 14:57 焦林俊 阅读(376) 评论(0) 推荐(0) 编辑

摘要: windows服务应用程序是一种长期运行在操作系统后台的程序,它对于服务器环境特别适合,它没有用户界面,不会产生任何可视输出,任何用户输出都回被写进windows事件日志。计算机启动时,服务会自动开始运行,他们不要用户一定登陆才运行。可以通过选择菜单“开始”-〉“控制面板”-〉“管理工具”-〉“服务”来查看现有系统中的服务,如下图:创建window 服务新建一个window 服务项目MyService,如下图从工具箱的组件表中拖动一个Timer对象到这个视图设计器上面。设置Timer属性,Enable为true,Interval属性为3000毫秒双击Timer事件,添加事件 1 publ... 阅读全文
posted @ 2013-07-18 11:13 焦林俊 阅读(327) 评论(0) 推荐(0) 编辑