摘要:
有时我们需要对PDF文件进行一些处理, 提取文本,合并等. 以前我们使用A-PDF Text Extractor免费工具,为什么不自己写一个呢? 现在我们可以使用PDFBox-0.7.3这个开源类库. 下载解包后引用: PDFBox-0.7.3.dll IKVM.GNU.Classpath.dll 新建一个项目,代码很简单: 1: public static st... 阅读全文
摘要:
有时在项目中,由于部署的原因。我们需要对原来的WCF Service做一个代理,实现消息完全转发。WCF中我们可以这样实现,假设有这样的Service 1: [ServiceContract] 2: public interface IMath 3: { 4: [OperationContract] 5: double Add(double A, double B); 6: }实现: 1: pu... 阅读全文
摘要:
我们在开发,有时遇到一些Legcy代码,然后需要对它们进行UnitTest。UnitTest的重要性在这里不再说了。但是发现某些Class中有些方法是Static的,按以往的方法我们需要用Extact Interface 方法 从那个需要测试的Class,然后使用 IOC /DI 的方式替换具体的实现,用一个Fake Class或Mock 一个实现来完成 UnitTest。现在我们可以使用Mol... 阅读全文
摘要:
我们在开发Asp.net中,最后部署在IIS上. 然后发送HTTP请求,返回的HTTP头中包含Server, X-Powered-By, 和 X-AspNet-Version信息. 这些信息有时给攻击者找寻你的站点漏洞提供的依据. 如下图我们通过FireBug查看到: 移除X-AspNet-Version很简单,只需要在Web.config中增加这个配置节: <httpRuntime enabl... 阅读全文
摘要:
LinqPad 可以Load一个包含有EF Model的程序集。这样极大的方便调试LINQ.而不需要VisualStudio, 让我们来演示一下。首选创建一个Connection,看下图: 通过点击Browse加载一个程序集,然后你可以看左右的目录树结构: 输入这样的LINQ Expression: 1: from forumGroupMapping in ForumGroupMappings ... 阅读全文
摘要:
SQL Server在用户自定义函数中UDF使用临时表,这是不允许的. 有时是为了某些特殊的场景, 我们可以这样的实现: CREATE TABLE #temp (id INT)GOINSERT INTO #temp VALUES (1),(2),(3)GOCREATE SYNONYM temp_table_synonym FOR #tempGOCREATE FUNCTION fn_select_t... 阅读全文
摘要:
前段时间园子有个人发一道面试题是这样的,找出.net framework 中的所有Attribute。通常这个问题需要指定范围的,下面让我们来实现一下查找当前AppDomain中程序集的所有Attribute,您可以举一反三,接下看下来的代码: 1: [TestMethod] 2: public void TestGetCurrentAppDomainAttribuesNameTree() 3:... 阅读全文
摘要:
前面的文章,我们使用WCF构建一个简单的REST的WCF Service。之前我们使用Fiddler来测试,现在还可以使用WCF Web API来测试。代码看来起更加简洁首先,你可从CODEPLEX下载,也可以从NuGet安装它,执行: Install-Package netfx-WebApi.Testing WCF HTTP高层架构是这样的: 基于上次的DEMO,我们使用来写一些UnitTes... 阅读全文
摘要:
现在我们可以用 WCF 4 轻易构建一个REST Service,如何测试呢?首先让我们来看类图: 代码是这样的: 1: [ServiceContract] 2: public interface IDataService 3: { 4: [OperationContract] 5: [WebGet(UriTemplate = "/Get?id={id}")] 6: Employee Get(i... 阅读全文
摘要:
在.net framework 4中有一个DynamicObject 类型,我们通过重写 TryInvokeMember 方法实现简单的AOP。首先看类图: 看下面的代码: public class DynamicWrapper : DynamicObject { private readonly object source; public DynamicWrapper(object sourc... 阅读全文