分类: 程序开发

获取属性选取表达式的目标属性类型的方法

之前的文章中曾有提供过这样一个获取属性选取表达式的目标属性名称的方法: /// <summary> /// 获取属性的名称 /// </summary> /// <typeparam name=”T”>元素类型</typeparam> /// <typeparam name=”PT”>属性类型</typeparam> /// <param name=”表达式”>获取属性的表达式</param> /// <returns>属性的名称</returns> public static string GetPropertyName<T,PT>(Expression<Func<T, PT>> 表达式) { string rtn = string.Empty; if (表达式.Body is UnaryExpression) { rtn = ((MemberExpression)((UnaryExpression)表达式.Body).Opera...

更多

Visual Studio的T4 Template代码模板化生成工具使用方法

内容详实,值得一看,记录备查。 分享或转载本博客站点内的所有原创内容时,都必须遵循此协议: 姓名标示-非商业性-相同方式分享 4.0 国际 (CC BY-NC-SA 4.0) 同时必须附加指向本文页面或本博客首页的超链接。 除此之外的转载、分享方式都必须征得本博客作者的授权,否则将会诉诸法律。

更多

实现网页客户端实时自动解析Markdown为HTML内容

目前大多数相关项目实现的都是服务器端的Markdown语法解析,解析后将HTML代码返回给客户端,比如这个C#的项目:markdownsharp 我感觉这么轻量的格式没必要浪费服务器运算及带宽资源,还是通过Javascript实现客户端解析的方法最为实用,而且客户端解析的方式还能实现实时的所见即所得对照编辑,非常方便。 多番寻找和尝试,最终选定了markdown-js 首先从这里下载其浏览器版: https://github.com/evilstreak/markdown-js/releases 解压缩后在其js文件同目录下新建一个网页进行测试,代码如下: <!DOCTYPE html> <html> <body> <textarea id=”text-input” oninput=”this.editor.update()” rows=”6″ cols=”60″>Type **Markdown** here.</textarea> <div id=”preview”> </div> <scrip...

更多

通过WF实现的自动化挂机操作程序演示

最近把一些客户端操作封装成了WF的活动,这样模块化地进行组合使用就非常方便了。 这种自动化操作应用非常适合传统行业信息化转型时的繁琐人工录入操作替代,或是新旧系统的数据对接等场景,能够极大地减少人力工作量。 以下是最近实现的两个小项目演示: 通过编程实现自动操作CAD软件输出序列动画帧 http://www.tudou.com/programs/view/chfDKqBMoQ0/ 需求场景为一个现有珠宝业网站,里面包含大量珠宝首饰模型及相关图像,希望为所有模型追加3D旋转动画演示功能。 此程序实现的功能如下: 通过API自动从网站下载模型源文件 通过CAD软件打开源文件 将旋转过程分32桢导出渲染图 将导出的所有渲染图加水印并最终拼合成一个大图 将大图通过API上传到网站 这样网站上就可以通过Javascript实现动画播放 通过编程实现的自动化上传图像到WordPress文章功能 http://www.tudou.com/programs/view/64dJ_2eFFbM/ 此案例客户要求上传大量的图片发布到其通过WordPress建立的CMS平台,于是便为其编写了这个程序,将批量处...

更多

在MongoDB中查询GUID类型数据的方法

MongoDB不支持GUID,存入数据库的GUID通常是这样表示的: /* 0 */ { “_id” : new BinData(3, “Fl109F7FZkOeJN9eq8Hsvw==”), “_t” : “源文件”, “创建时间” : ISODate(“2014-07-15T08:46:30.115Z”), “创建者用户名” : “hekang”, “最后修改时间” : ISODate(“2014-07-15T08:46:30.115Z”), “最后修改者用户名” : “hekang”, “名称” : “z.jcd”, “说明” : null, “容量” : 125105, “原扩展名” : “.jcd”, “文件编号” : ObjectId(“53eeccfc06cb1957149829b0”), “主校验编码” : “1aacb589cb9d4ca65fafef4cec54e22c”, “辅校验编码” : “22556785” } 第三行所显示的即是我们的GUID类型的名为“Id”的属性通过C#官方驱动存入数据库后的形式。 这是Base64类型的值,通过下面这段Javascri...

更多

实用的Mongodb官方驱动辅助扩展方法

因为实测使用Lambda表达式查询的效率并不比标准Api差,所以我希望尽可能地使用Lambda表达式来完成Mongodb的查询工作。 这些扩展方法能够实现便捷的Lambda查询,例如: c.Find(q => !q.性别 && q.身高 > 1.8 && q.存款 > 5000) 当然有些地方还是会需要用到标准Api的,这里也为多条件过滤式查询提供了更方便的调用方式: c.Find(Query<数据>.EQ(q => q.性别, false), Query<数据>.GTE(q => q.身高, 1.8)) 另外也对Javascript代码方式的查询调用方式做了优化,这也是很常用的使用方式,适合于在后台让管理员自定义查询代码进行查询: c.Find(“this.性别==false&&this.身高>=1.89&&this.生日.getFullYear()>=1995”) 但须注意,Javascript使用的是$where方式查询,速度比较慢,上述查询在10万条...

更多

RegeX3更新到v3.0.2.2版

此次更新主要修正了界面布局问题,为替代文本框设置了高度上限,避免输入过多文本后将其他界面元素挤出屏幕的情况。 立即使用新版本 分享或转载本博客站点内的所有原创内容时,都必须遵循此协议: 姓名标示-非商业性-相同方式分享 4.0 国际 (CC BY-NC-SA 4.0) 同时必须附加指向本文页面或本博客首页的超链接。 除此之外的转载、分享方式都必须征得本博客作者的授权,否则将会诉诸法律。

更多

在MongoDB官方驱动中使用含有Decimal类型属性数据时的注意事项

MongoDB中没有Decimal所对应的类型,并且Decimal目前也还不受MongoDB官方驱动(当前为1.10.0-rc0 (预发行版))支持,默认序列化时会把其存为字符串类型数据,这意味着性能损耗,且不支持Inc形式的更新。 找了一下相关资料,有人提出了一种解决办法,但他这是针对仅保留2位小数的价格属性而制定的,并且在当前版本MongoDB官方驱动中测试并未成功。 当下的权宜之计还是把它当做Double类型来处理,即为属性附加此特性: [BsonRepresentation(BsonType.Double, AllowTruncation = true)] 关于其中AllowTruncation的解释请参看我之前的博文。 分享或转载本博客站点内的所有原创内容时,都必须遵循此协议: 姓名标示-非商业性-相同方式分享 4.0 国际 (CC BY-NC-SA 4.0) 同时必须附加指向本文页面或本博客首页的超链接。 除此之外的转载、分享方式都必须征得本博客作者的授权,否则将会诉诸法律。

更多

比较全面的MIME类型(ContentType)映射枚举代码

对MIME类型做了整理,为了使用方便而写成了一个枚举,在此分享一下,这在网络编程中很实用。 此枚举描述了约有470多种文件类型与MIME类型的对应关系,通过一个扩展方法获取其对应的MIME值。 枚举主体代码: /// <summary> /// 文件类型枚举,可以通过GetDescription扩展方法获取其对应的MIME类型。 /// </summary> public enum 文件对应MIME类型 { /// <summary> /// 扩展名.323的文件,对应ContentType(MIME)类型:text/h323 /// </summary> [Description(“text/h323”)] _323, /// <summary> /// 扩展名.3gp的文件,对应ContentType(MIME)类型:video/3gpp /// </summary> [Description(“video/3gpp”)] _3gp, /// <summary> /// 扩展名.aab的文件,对应C...

更多

WF继承AsyncCodeActivity时遭遇InvalidOperationException的解决方法

未处理System.InvalidOperationException  HResult=-2146233079  Message=AsyncCodeActivity.BeginExecute 必须返回 IAsyncResult,且其 IAsyncResult.AsyncState 必须为运行时提供的状态对象。  Source=System.Activities  StackTrace:       在 System.Activities.WorkflowApplication.Invoke(Activity activity, IDictionary`2 inputs, WorkflowInstanceExtensionManager extensions, TimeSpan timeout)       在 System.Activities.WorkflowInvoker.Invoke(Activity workflow,...

更多