代码改变世界

如何构造请求处理对象链(Pipeline)

2018-05-11 14:18 by yangtam, 462 阅读, 0 推荐, 收藏,
摘要:在开发中,我们经常会遇到这样一个场景:传入一个对象,经过不同的节点对这个对象做不同的操作,比如ASP.NET Core 中的pipeline,IIS中的HTTPpipeline等。在这类问题中,往往我们允许用户可以自己定义自己的处理节点(Processor Node),能够实现这一目的的方式很多。本 阅读全文

如何以任意的时间间隔来分组

2017-10-19 21:44 by yangtam, 1030 阅读, 1 推荐, 收藏,
摘要:在实际的项目开发中,我们经常会有这样的需求:按照某些特定条件将一数据集分组,比如按照时间分组、按照任意时间间隔分组。 (一)按照时间分组 这是一种我们在时间项目中接触到最多的情况,在C#中我们可以借助LINQ: group ... by ... into..或Lambda: Group(Func<T 阅读全文

WCF 依赖注入-- Attribute

2013-06-27 17:39 by yangtam, 932 阅读, 0 推荐, 收藏,
摘要:最近,工作之余学习WCF(Windows Communication Fundation)时,感觉自己还有好多的东西需要学习呀⊙﹏⊙b汗,于是想记录下自己学习WCF的心得,以鼓励自己再接再厉,同时希望可以为其他想学习WCF的园友们抛砖引玉,虽然有很多大侠们已经写了很多类似的文章了。 结合现实开发项目的情形,想在WCF服务中实现构造函数的依赖注入,就像在MVC中有一个名为DefaultControllerFactory的入口一样,那么在WCF中是否也有类似的类呢?下面是在MSDN中提到了三种方法:以编程方式,先将自定义服务行为添加到 Behaviors 属性,然后对 System.Servi.. 阅读全文

对属性进行动画处理后设置该属性

2013-06-24 14:41 by yangtam, 470 阅读, 0 推荐, 收藏,
摘要:在最近做的项目中,发现一个棘手的问题:在经过动画处理后,那些属性值都无法改变了。在动画过程中,wpf不会马上显示属性的赋值结果,然后在动画结束后该属性被释放到初始值,即你设定的预期值,因为就是动画的结束值,所以你看不到变化,但是这时候的属性已经可以做改变了。原来想详细写写这个问题,今天偶然发现MSDN上有:http://msdn.microsoft.com/zh-cn/library/aa970493.aspx。这几个方法都可以实现我们需要的方式,贴一贴原文【示例】在下面的示例中,Storyboard用于对SolidColorBrush的颜色进行动画处理。当单击按钮时将触发演示图板。处理Com 阅读全文

WPF 3D 模型旋转

2012-09-20 23:20 by yangtam, 5837 阅读, 0 推荐, 收藏,
摘要:WPF 是 Microsoft 在 Framework3.0 中支持的一种技术,它能作出很绚丽的界面,同时它也支持3D的操作。在3D操作主要包括平移(Translate)、旋转(Rotation)、缩放(Scale)。 本文中主要是讨论3D 模型的旋转。对于旋转操作可以采用旋转模型,通过模型的Transform属性来完成;也可以通过第一人称的摄像机通过旋转摄像机来完成旋转。当然处于对性能的考虑本文选择第二种方法的方式来旋转模型。 完成摄像机的旋转需要通过以下几个步骤: 1. 对于不同的模型,设置摄像机的位置(Position),远焦距(FarPlaneDistance),近焦距(Ne... 阅读全文

基于Attribute(属性)的插件开发

2012-04-23 09:51 by yangtam, 380 阅读, 1 推荐, 收藏,
摘要:在Windows Form中我们常常遇到这样的一个问题,系统升级后菜单就变了,或者将一个dll放入到对应运行的文件夹下面,然后重新运行系统,系统菜单就自然改变了。类似这样的解决方法会有很多,下面只是个人的想法,有什么不对的地方请各位指出。 在.NET平台下主要通过Attribute+反射来实现的,具体的步骤如下:先定义一个Attribute,比如说(MenuItemAttribute);根据不同的需求继承MenuItemAttribute;定义并实现一个操作反射的类(AssemblyHelper),主要用于查找MenuItemAttribute;在集成的MainForm中通过调用Asse... 阅读全文

WPF 3D变形

2012-04-06 17:34 by yangtam, 951 阅读, 1 推荐, 收藏,
摘要:开始学习WPF中的3D的时候,在官方网站上看到过一个Demo就是将一个teapot扭曲,其中主要的一个类是Twister,该类主要是完成一个扭曲的效果,但是这个例子只是将一个随机的数值作为扭曲的结果,通过转换来实现的,那么我们如何通过加入现实生活中的数值来是扭曲达到我们想要的效果呢? 由于刚刚开始接触3d的东西,对很多3d的东西还不熟悉,所以我设计的解决方案是将3d转化为2d的,那么就比较熟悉了。 首先,通过Blend将3d文件.obj导入到xaml中,你会发现一个规律,在同一个水平面上的顶点他们的Y是相同的,同一个竖直方向上的所有顶点他们的X和Z是相同的,那么可以通过对顶点分组可以是... 阅读全文

Setup项目部署和生成失败的解决方法

2012-04-01 14:21 by yangtam, 1210 阅读, 0 推荐, 收藏,
摘要:昨天在.NET环境中打包和部署过程中出现了一个很奇怪的问题,打包项目在一个我的电脑上能编译成功,而在其他同事的电脑上不能编译成功,vs只是提示building failed 但是在错误列表中没有任何的错误信息,在网上找了很久也没有找打好的解决方法,后来在biying中搜索“setup project build failed .net”关键字,在stackoverflow中找到了一个解决方案,方法如下:关闭VS2008.用记事本打开包含LINQ To SQL项目的项目文件.删除项:[ItemGroup][Service Include="{3259AA49-8AA1-44D3-902 阅读全文

Dispatcher.BeginInvoke 和 Invoke

2012-03-28 23:09 by yangtam, 561 阅读, 1 推荐, 收藏,
摘要:在Dispatcher类中有一个Invoke和BeginInvoke的两个方法,从微软的一般命名上来看,前者是在当前的Dispatcher上同步执行某个委托,后者则是在当前的Dispatcher上异步执行某个委托。当然有时候可能有童鞋有疑问同步有什么作用,到目前而言我只知道使用Invoke方法可以改变某个委托执行的优先级。在某些不用很及时的显示给用户的东西,可以使用BeginInvoke方法。有什么不正确的地方忘大侠们提出。 阅读全文