[Route("adm/getInfo")]
[HttpGet]
public string GetInfo()
{
var types = typeof(GCP.Server.WebAPI.Controllers.HomeController).Assembly.GetTypes().Where(m => m.Name.EndsWith("Controller"));
System.Text.StringBuilder sb = new System.Text.StringBuilder(100);
sb.Append("接口").Append(",").Append("类型").Append(",").Append("注释").AppendLine(); using (System.IO.StreamReader sr = new System.IO.StreamReader(@"F:\GCP\SourceCode\GCP\GCP.WebAPI\App_Data\GCP.WebAPI.XML"))
{
System.Xml.XmlDocument xml = new System.Xml.XmlDocument();
xml.Load(@"F:\GCP\SourceCode\GCP\GCP.WebAPI\App_Data\GCP.WebAPI.XML");
var members = xml.LastChild.LastChild.ChildNodes;
//var members = xml.LastChild.ChildNodes;
foreach (var t in types)
{
var routePrefix = t.GetCustomAttributes(false).FirstOrDefault(m => m.ToString().Contains("RoutePrefix")) as RoutePrefixAttribute;
if (routePrefix == null)
{
continue;
}
string prefix = routePrefix.Prefix; var ms = t.GetMethods(System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.Instance)
.Where(m => m.GetCustomAttributes(false).Any(n => n.GetType() == typeof(RequestControlAttribute)));
foreach (var m in ms)
{
var requestCtrl = m.GetCustomAttributes(typeof(RequestControlAttribute), false)[0] as RequestControlAttribute;
var routeAttr = m.GetCustomAttributes(typeof(RouteAttribute), false)[0] as RouteAttribute;
Row r = new Row
{
Url = prefix + "/" + routeAttr.Template,
Type = requestCtrl.requestorType.ToString(),
Content = GetContent(members, m)
};
sb.Append(r.Url).Append(",").Append(r.Type).Append(",").Append(r.Content).AppendLine();
}
}
} System.IO.File.WriteAllText("e:/info.csv", sb.ToString(), System.Text.Encoding.UTF8);
return "OK";
} private string GetContent(XmlNodeList members, MethodInfo m)
{
for (int i = 0; i < members.Count; i++)
{
var mem = members[i];
if (mem.Attributes["name"].Value.Contains(m.DeclaringType.ToString() + "." + m.Name))
{
return mem.FirstChild.InnerText.Replace("\r\n", "").Replace(",", "_").Trim();
}
}
return "";
} class Row
{
public string Url { get; set; }
public string Type { get; set; }
public string Content { get; set; }
}

C# 实现Excel读取接口写入数据的更多相关文章

  1. 复制excel表,往excel表中写入数据

    import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;import jav ...

  2. Hadoop源代码分析:HDFS读取和写入数据流控制(DataTransferThrottler类别)

    DataTransferThrottler类别Datanode读取和写入数据时控制传输数据速率.这个类是线程安全的,它可以由多个线程共享. 用途是构建DataTransferThrottler对象,并 ...

  3. nodeks —— fs模块 —— 从流中 读取和写入数据

    Fs流读取和写入数据 使用文件流来读取大文件不会卡顿 1, 从流中读取数据 var fs = require("fs"); var data = ''; var count = 0 ...

  4. 用OpenPyXL处理Excel表格 - 向sheet读取、写入数据

    假设一个名叫"模板"的excel表格里有四个sheet,名字分别是['平台', '制冷', '洗衣机', '空调'] 1.读取 from openpyxl import load_ ...

  5. python使用 openpyxl包 excel读取与写入

    '''### 写入操作 ###from openpyxl import Workbook#实例化对象wb=Workbook()#创建表ws1=wb.create_sheet('work',0) #默认 ...

  6. Pandas之Dateframe 实现Excel读取与写入

    目的:有时需对数据进行到出到Excel,直观的给别人参阅,或从Excel中读取数据进行操作和分析依赖库 pandas 可简单的读出和写入 1,根据Excel读取( 需安装xlrd库) import n ...

  7. 使用java进行excel读取和写入

    1:添加处理excel的依赖jar包 <!-- 引入poi,解析workbook视图 --> <dependency> <groupId>org.apache.po ...

  8. C#连接Excel读取与写入数据库SQL ( 上 )

    第一次写C#与sql的东西,主要任务是从Excel读取数据,再存到SQL server中. 先上读取Excel文件的code如下. public bool GetFiles(string equipN ...

  9. 转载-python学习笔记之输入输出功能读取和写入数据

    读取.写入和 Python 在 “探索 Python” 系列以前的文章中,学习了基本的 Python 数据类型和一些容器数据类型,例如tuple.string 和 list.其他文章讨论了 Pytho ...

随机推荐

  1. Uva 1378 - A Funny Stone Game

    1378 - A Funny Stone Game Time limit: 3.000 seconds The funny stone game is coming. There are n pile ...

  2. vsphere client 创建虚拟机 如何关联到本地iso文件

    问题:以前用过vmere 创建虚拟机,都要在虚拟机启动之前配置系统镜像文件,第一次使用vspere client时在创建虚拟机后,我就想着应该先配置,再启动,其实,非也,应该这样,先启动虚拟机,在点按 ...

  3. eclipse Java类 红色感叹号 commit失败

    解决方法:  1.进入java类文件所在物理目录 (e:\workspace\myproject\...) 2. 删除多余的版本管理工具的文件或文件夹(如 .svn) 3. 刷新eclipse工程 4 ...

  4. angular ng指令

    1.指令 ng-app,ng- 都是angular的指令系统ng-app: ng-app是angular的初始化,一个页面只能有一个ng-app,位置不限制.在页面上加入了这个执行,那么从当前的元素以 ...

  5. mac下打开hosts文件

    1打开控制台 输入vi(空格)/etc/hosts 进入hosts文件,输入i更改为编辑状态,更改完esc然后shift+:在输入wq保存退出 2打开Finder然后选择上面前往,到前往文件夹,输入/ ...

  6. <Android 基础(二十)> CoordinatorLayout Behavior

    介绍 Interaction behavior plugin for child views of {@link CoordinatorLayout}. A Behavior implements o ...

  7. CentOS 7运维管理笔记(11)----PHP安装与配置

    PHP的安装同样需要经过环境检查.编译和安装3个步骤. 1.首先用百度搜索 “PHP:Downloads”, 点击第一个网页: 选择5.5.37版本,选择 .tar.gz 格式的文件: 来到镜像列表网 ...

  8. 怎么区分odd和even

    odd [ɒd] 和even ['iːv(ə)n] 一个表示奇数.一个表示偶数 经常混淆. 一个记住的好方法: odd是3个字母,单数,所以表示奇数 even是4个字母,所以表示偶数

  9. Python爬虫教程-25-数据提取-BeautifulSoup4(三)

    Python爬虫教程-25-数据提取-BeautifulSoup4(三) 本篇介绍 BeautifulSoup 中的 css 选择器 css 选择器 使用 soup.select 返回一个列表 通过标 ...

  10. linux 的 磁盘管理

    1. 查看信息 1.1 查看磁盘信息 在linux中如果需要查看磁盘信息,需要使用df和du命令. df: 列出文件系统中整个磁盘的使用量 du:评估文件系统中磁盘的使用量,经常用来推算目录所占的容量 ...