zoukankan      html  css  js  c++  java
  • XSD To Entity Vs2008 Add Ins

    最近闲得无事,不过也是为了以后设计的一个环节,做了一个Add-Ins

    主要是XSD To Entity的操作。

    Step 1:先配置一下

               把相关的AddIn、DLL Copy To 当前用户\文档\Visual Studio 200X\Addins

    image

    Step 2:Tools\Add-In Manager勾选即可

    image

    Step 3:现在随便打开一个project,然后在Code Windows中右击,就可以看到XSD To Entity

    1

    界面

    image

    选择一个XSD File

    image

    转换完成

    image

    转换文件

    image 

    代码方面:

    image

    Connect.cs:

     1 public void OnConnection(object application, ext_ConnectMode connectMode, object addInInst, ref Array custom)
     2 {
     3           _applicationObject = (DTE2)application;
     4           _addInInstance = (AddIn)addInInst;
     5 
     6           // Get the CommandBar for the window in which you want to add the menuitem.
     7           //I am going to add it to the code window.
     8           CommandBar oCommandBar = ((CommandBars)_applicationObject.CommandBars)["Code Window"];
     9 
    10           // I am going to add a MenuItem and a submenuitem to that.
    11           // So I go ahead and create a PopUp Item.
    12           CommandBarPopup oPopup = (CommandBarPopup)oCommandBar.Controls.Add(MsoControlType.msoControlPopup,
    13                                                                              System.Reflection.Missing.Value,
    14                                                                              System.Reflection.Missing.Value, 1true);
    15           // Set the caption of the menuitem
    16           oPopup.Caption = "XSD To Entity";
    17 
    18           // Now I go ahead and add a Submenu item to the added Menuitem.
    19           CommandBarControl oControl = oPopup.Controls.Add(MsoControlType.msoControlButton,
    20                                                            System.Reflection.Missing.Value,
    21                                                            System.Reflection.Missing.Value, 1true);
    22           // Set the caption of the submenuitem
    23           oControl.Caption = "Execute";
    24 
    25           // Now that we have added the menu items,
    26           // we will associate the click events for these items.
    27           // I will associate a click event only for the SubMenuitem at present.
    28           oSubMenuItemHandler = (CommandBarEvents)_applicationObject.Events.get_CommandBarEvents(oControl);
    29           oSubMenuItemHandler.Click += new _dispCommandBarControlEvents_ClickEventHandler(oSubMenuItemHandler_Click);
    30 }
    31 
    32 /// <summary>
    33 /// Invoked on click of sub menu item.
    34 /// </summary>
    35 protected void oSubMenuItemHandler_Click(object CommandaBarControl, ref bool handled, ref bool cancelDefault)
    36 {
    37           XSDToEntityFrm frm = new XSDToEntityFrm();
    38           frm.ShowDialog();
    39 }
    XSDToEntityFrm.cs
    System.Diagnostics.Process p = new System.Diagnostics.Process();
    {
          p.StartInfo.FileName = "cmd.exe";
          p.StartInfo.UseShellExecute = false;
          p.StartInfo.RedirectStandardInput = true;
          p.StartInfo.RedirectStandardOutput = true;
          p.StartInfo.RedirectStandardError = true;
          p.StartInfo.CreateNoWindow = true;
          p.Start();
          p.StandardInput.WriteLine( String.Concat( @"%comspec% /k """"" , txtVsPath.Text , @""""" x86" ) );
          p.StandardInput.WriteLine( String.Concat( @"xsd /c /language:CS " , selectFile , @" /out:" , txtOutPath.Text ) );
          p.StandardInput.WriteLine( "Exit" );
          p.Close();
    }

    完整程序 XSDToEntity

    XML To XSD : xsd test.xml /outputdir:D:\

    XSD TO DataSet : xsd /dataset /language:CS Test.xsd (不过,不是每个xsd都是可以转换的)

    DLL To XSD : xsd Test.dll  (不过,不是每个DLL都是可以转换的)

  • 相关阅读:
    块编程指南
    libxml2:Debug模式可以编译,Distribution下不可以?
    CIO应该考虑的九个外包神话和现实
    【Android游戏开发二十四】360°平滑游戏摇杆(触屏方向导航)
    自定义 UITableViewCell 的 accessory 样式
    提升UNIX安全性的Unix SSH示例配置
    java 跟.net webservice 互通问题
    外包合同中降低成本的战略性技巧
    get post
    Android SAX API: XmlResourceParser及其扩展应用
  • 原文地址:https://www.cnblogs.com/RuiLei/p/1379162.html
Copyright © 2011-2022 走看看