在上一篇文章中,我们已经学到了很基本的MEF概念和使用方法. 但我们导出的是一个object类型的实例,只能用来tostring,没有引用部件类库,也不能用里面的成员方法. 本篇,我们逐渐往简单的文件管理器的目标靠拢. 新建类库IPart,添加一个接口IFileHandler.cs namespace IPart { public interface IFileHandler { void Process(); } } Parts类库和主项目meftest均引用IPart Parts类库中,将要…
上一篇我们已经可以获取各种FileHandler的实例和对应的元数据.本篇,我们做一个稍微完整的文件管理器. 1.修改接口IFileHandler,传入文件名 namespace IPart { public interface IFileHandler { void Process(string fileName); } } 2.修改具体的FileHandler. using IPart; using System; using System.ComponentModel.Compositio…
我们已经成功的达到了目标,大量减少了if else. 不过在园子里面的文章大多,用的是Import.ImportMany.So,修改主函数. using IPart; using System; using System.Collections.Generic; using System.ComponentModel.Composition; using System.ComponentModel.Composition.Hosting; using System.Linq; namespace…
起因:工作需要针对不同类型的文件做不同的处理.打个比方,txt文件,直接打印,doc文件,直接发email,jpg文件,上传xxx相册站点. 其实这个问题在学习最基本的工厂模式的时候早已经解决了,稍有点面向对象基础的,都可以写出这样一个文件管理器.再有新类型文件处理的时候,只需要在加一个实现类,再在工厂里面加一个if判断,返回一个具体的处理实例即可,上层不必改动. 要干掉工厂里面的if,则必须要请出ioc容器了.MEF就是微软自家的托管可扩展框架,在这里被我用成了ioc容器,其他的功能,不求甚解…
上一篇我们已经获得了制定类型的实例,但我们还无法对其进行有效的控制. 我们用ExportMetadata属性可以对具体的某个实例做标记,相当于命名.这么理解不知道对否. 在IPart项目中添加一个接口IPatMetadata namespace IPart { public interface IPatMetadata { string Extension { get; }//以后缀名来区分,特别需要注意,这里的名称要和ExportMetadata里面的一致. } } 在导出的地方添加具体的导出…
一.概述 "光说不练假把式." 官网上的介绍多少让人迷迷糊糊的,各种高大上的词语仿佛让 NiFi 离我们越来越远. 实践是最好的老师.那就让我们试用一下 NiFi 吧! 二.安装 由于我的整个学习和使用过程都是在 Linux 下完成,所以,整个教程也是面向 Linux 用户的. 其他系统下的使用方法类似,如有其他系统的用户,那么还请有选择性的进行参考本教程. NiFi 是免安装地,仅需从官网下载压缩包,然后解压,旋即完成了整个安装过程. 官网下载压缩包:nifi.apache.org/…
salesforce 零基础开发入门学习(六)简单的数据增删改查页面的构建   VisualForce封装了很多的标签用来进行页面设计,本篇主要讲述简单的页面增删改查.使用的内容和设计到前台页面使用的标签相对简单,如果需要深入了解VF相关知识以及标签, 可以通过以下链接查看或下载: https://resources.docs.salesforce.com/200/latest/en-us/sfdc/pdf/salesforce_pages_developers_guide.pdf 下面以一个单…
react入门之使用react-bootstrap当轮子造车(二) 上一篇我们谈了谈如何配置react的webpack环境 react入门之搭配环境(一) 可能很多人已经打开过官方文档学习了react的基础知识 不管有没有,在介绍react之前,我想先介绍一下react-bootstrap 先懂得使用别人造的轮子,就能更快成为老司机. 好的,源代码奉上: git clone https://github.com/lingjiawen/react_bootstrap_demo.git cd rea…
原文链接:linux简单之美(二) 我们在前一章中看到了如何仅仅用syscall做一些简单的事,现在我们看能不能直接调用C标准库中的函数快速做一些"复杂"的事: section .data ft db section .text extern puts extern exit extern sleep extern printf global main main: again: dec edi push edi push ft call printf call sleep jnz ag…
keras实现简单性别识别(二分类问题) 第一步:准备好需要的库 tensorflow  1.4.0 h5py 2.7.0 hdf5 1.8.15.1 Keras     2.0.8 opencv-python     3.3.0 numpy    1.13.3+mkl 所需要的人脸检测模块 mtcnn和opencv https://pan.baidu.com/s/1rhP7mcnAtiojhk8eiLroEw 第二步:准备数据集: 将性别不同的图片按照不同的分类放到不同的文件夹内. 数据集 h…