TFS自定义开发中的反射应用

最近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://www.cnblogs.com/muzizongheng/p/3182362.html