<?xml version="1.0" encoding="UTF-8"?> 最近CM(Configuration Management) 的同事在自定义开发TFS的过程中遇到一个问题。

领导要求快速开发一个工具, 可以自动连接TFS,然后自动Check out一些word文件, 然后程序修改后自动check in。(比如签名)
这个实现的话,需要3个方面:
1.根据现有TFS界面抽出可以使用的UI, 然后找到对应dll
2.利用C#的反射, 获取到对应字段或者属性, 进行更改。
3.现有UI不满足的情况下, 自己根据TFS的API,重新实现界面。

TFS的界面1
类名为TeamProjectPicker, 
dll名字为Microsoft.TeamFoundation.Client.dll
其内部包含TfsConnectDialog,如:
 public class TeamProjectPicker : IDisposable
  {
    private TfsConnectDataSource m_dataSource;
    private TfsConnectDialog m_internalDialog;
    private bool m_disposed;
    private CancelEventHandler AcceptButtonClick;
。。。。。
 }
然后根据反射获取TfsConnectDialog的各个UI元素,进行更改设置。

TFS的界面2
类名为:DialogChooseItem
dll名字为:Microsoft.TeamFoundation.VersionControl.Controls.dll
其内部包含ControlChooseItem, 如:
namespace Microsoft.TeamFoundation.VersionControl.Controls
{
  internal class DialogChooseItem : BaseDialog
  {
    private IContainer components;
    private Button ok;
    private Button cancel;
    private ControlChooseItem chooseItem;
    private TableLayoutPanel okCancelTableLayoutPanel;
    private TableLayoutPanel overarchingTableLayoutPanel;
...........
  }
}
同理根据反射,获取ControlChooseItem的各个UI元素, 然后更改设置。

转载于:https://blog.51cto.com/muzizongheng/1332972

TFS自定义开发中的反射应用相关推荐

  1. Java中的反射(Reflection)为什么叫“反射”?什么是“正射”?如何自定义注解并解析?

    文章目录 反射的定义 什么是"正射" 反射的作用 反射的定义 计算机科学中的反射(reflection) 指计算机程序在运行时(runtime) 可以访问.检测和修改它本身状态或行 ...

  2. java sessionstate_在Java Web开发中自定义Session

    Session在存储安全性要求较高的会话信息方面是必不可少的,对于分布式Web应用自定义Session支持独立的状态服务器或集群是必须的.本文就来教大家如何在Java Web开发中自定义Session ...

  3. android自定义progressbar样式,Android开发中如何实现自定义ProgressBar的样式

    Android开发中如何实现自定义ProgressBar的样式 发布时间:2020-11-20 16:08:10 来源:亿速云 阅读:294 作者:Leah Android开发中如何实现自定义Prog ...

  4. U3D开发中关于脚本方面的限制-有关IOS反射和JIT的支持问题

    U3D开发中关于脚本方面的限制-有关IOS反射和JIT的支持问题 U3D文档中说明了,反射在IOS是支持的,除了system.reflection.emit空间内的,其它都支持.JIT是不支持的. 本 ...

  5. android 自定义刷新控件,Android开发中MJRefresh自定义刷新动画效果

    有时候我们对自己开发的项目经常不满意,但是我们要达到自定义刷新动画的效果有一定的难度,别着急,下面爱站技术频道和大家分享Android开发中MJRefresh自定义刷新动画效果,一起来学习吧! [一] ...

  6. 详解Python项目开发时自定义模块中对象的导入和使用

    背景:1)任何一个Python程序文件既可以直接执行,也可以作为模块导入再使用其中的对象:2)对于大型系统开发,一般不会把所有代码放到单个文件中,而是根据功能将其分类并分散多个模块中,在编写小型项目时 ...

  7. python导入模块中的对象_详解Python项目开发时自定义模块中对象的导入和使用

    背景:1)任何一个Python程序文件既可以直接执行,也可以作为模块导入再使用其中的对象:2)对于大型系统开发,一般不会把所有代码放到单个文件中,而是根据功能将其分类并分散多个模块中,在编写小型项目时 ...

  8. Android底部日期控件,Android开发中实现IOS风格底部选择器(支持时间 日期 自定义)...

    本文Github代码链接 先上图吧: 这是笔者最近一个项目一直再用的一个选择器库,自己也在其中做了修改,并决定持续维护下去. 先看使用方法: 日期选择: private void showDateDi ...

  9. iOS开发中键盘样式和自定义键盘。

    文章目录 系统自带的样式 自定义键盘 在系统自带键盘基础上自定义键盘 完全自定义键盘 自定义全部类型键盘 系统自带的样式 在iOS开发中系统自带键盘已经有很多样式,但是有时候并不能满足我们都开发需求, ...

最新文章

  1. 深入理解MyBatis的原理(三):配置文件(上)
  2. Win64 驱动内核编程-32.枚举与删除注册表回调
  3. G - Eating Plan
  4. MFC版链表实现稀疏多项式相加减
  5. applicationContext.xml详解
  6. ip 包流量分析程序_【干货】西门子S7300六大流量异常场景检测
  7. c语言博客作业03-函数
  8. 纠正Pandas中的缺失数据
  9. 在python语言中用=判断两个数值是否相等_在Python语言中,要判断两个值是否不等,应使用下列哪个运算符?...
  10. intelliJ IDEA快捷键整理自用版
  11. 创投“黑帮”,必须的
  12. mac 命令修改dns服务器,MAC设置DNS的步骤
  13. python 读取jpg_Python OpenCV读取png图像转成jpg图像存储的方法
  14. 解决java报错class [Ljava.lang.Object; cannot be cast to class [Ljava.lang.Comparable
  15. Photoshop基础2——工具
  16. BT 网站海盗湾(The Pirate Bay)不屈的精神
  17. SL-Sensor:基于结构光的高精度开源三维重建系统(arxiv2022)
  18. 让NotePad++高亮显示SQLite关键字
  19. 基于Castle ActiveRecord开发Domain Model详解(一)对象关系到数据表的映射
  20. R语言 | 认识apply家族

热门文章

  1. 图像腐蚀 java_OpenCV3 图像膨胀 dilate、腐蚀 erode、提取图像中的条形码 JAVA 实现...
  2. Python 执行SQL带参数
  3. puppetter安装就踩坑-解决篇
  4. Linux学习总结(五十四)LVS nat 模式搭建
  5. Nutanix 将社区版代码带入云中
  6. linux下in命令
  7. Android Touch事件传递机制 二:单纯的(伪生命周期)
  8. lipo 制作通用版本 静态库
  9. Human centered design and design thinking
  10. 吃完晚饭干什么的好方法