【问题标题】:Access dte.ActiveDocument.ActiveWindow object in EnvDTE在 EnvDTE 中访问 dte.ActiveDocument.ActiveWindow 对象
【发布时间】:2015-10-07 10:49:50
【问题描述】:

我正在开发一个能够与 Workflow Foundation 4 活动交互的 Visual Studio 扩展(包)。

如果活动在“代码视图”中打开,我可以访问 xaml 代码并解析它的属性。但如果活动以“设计模式”打开,我将无法访问活动元素或 xaml 代码。

var dte = (DTE2)serviceProvider.GetService(typeof(SDTE));
if (dte != null && dte.ActiveDocument != null)
{
   String xamlPath = dte.ActiveDocument.FullName;
   var document = (TextDocument)dte.ActiveDocument.Object("TextDocument");
   if (document != null)
   {
       //Code View
       var editPoint = document.CreateEditPoint(document.StartPoint);
       String xaml = editPoint.GetText(document.EndPoint);
   }else{
       //Designer ?????
       //(dte.ActiveDocument.ActiveWindow.Object.designerHostView).ContentText;
       //?????
       }

你们能给我一个提示吗?

【问题讨论】:

    标签: .net visual-studio xaml workflow-foundation-4 visual-studio-sdk


    【解决方案1】:

    用反射完成这个..

    dte.ActiveDocument.ActiveWindow.Object 它是一个设计器HostView 在 \Common7\IDE\Microsoft.VisualStudio.Activities.dll 中找到

    ContentText 是一个 IDesignerViewToContractHostAdapter 在 \Common7\IDE\HostSideAdapters\Microsoft.VisualStudio.Activities.HostAdapter.dll 中找到

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-06-11
      • 1970-01-01
      • 1970-01-01
      • 2018-04-21
      • 2014-09-26
      • 2021-03-25
      • 2016-05-08
      相关资源
      最近更新 更多