正在尝试使用一些Resharper开放API

正在尝试使用一些Resharper开放API,resharper,Resharper,我试图读取一个C#源文件并使用Resharper解析它。我想获取文件中使用的名称空间列表,但这一行有一个例外 ICSharpFile file = CSharpParserUtil.Parse(sCode); 异常详细信息: 中发生了类型为“System.InvalidOperationException”的首次意外异常 JetBrains.Platform.ReSharper.Shell.dll 线程0x1020已退出,代码为0(0x0)。 线程0x14c0已退出,代码为0(0x0)

我试图读取一个C#源文件并使用Resharper解析它。我想获取文件中使用的名称空间列表,但这一行有一个例外

   ICSharpFile file = CSharpParserUtil.Parse(sCode);
异常详细信息: 中发生了类型为“System.InvalidOperationException”的首次意外异常 JetBrains.Platform.ReSharper.Shell.dll

线程0x1020已退出,代码为0(0x0)。 线程0x14c0已退出,代码为0(0x0)

static void Main()
{
字符串sCode=File.ReadAllText(@“D:\ResharperTries\TestFile.cs”);
尝试
{
ICSharpFile file=CSharpParserUtil.Parse(sCode);
IList x=file.namespace声明;
foreach(x中的ICSHARPNAMESPACE声明值)
{
WriteLine(value.ContainingNamespace.ShortName);
}
}
捕获(例外e)
{
控制台写入线(e.Message);
}
}
在这个问题上需要一些帮助


感谢当前,在没有Visual Stdio的情况下使用ReSharper API是不可能的,就像您的控制台应用程序示例中那样。 您需要编写R#插件,它将在VisualStudio中加载到R#中


看看目前的情况,如果没有Visual Stdio,就不可能使用ReSharper API,就像您的控制台应用程序示例中那样。 您需要编写R#插件,它将在VisualStudio中加载到R#中


看一看

可以使用DXCore和CodeRush中的解析器来实现这一点

在10.2版中,我们为C#和VB(可自由下载的DXCore的一部分)发布了独立解析器库,因此引用解析器库将使您能够轻松完成所需的工作

如果您需要这方面的帮助,只需发送电子邮件support@devexpress.com有什么问题吗

以下是一些文件中使用的代码示例,可用于用名称空间填充列表框:

 string filePath = @"InsertFilePathHere";
 CSharp30Parser parser = new CSharp30Parser();

 SourceFile fileNode = parser.ParseFile(filePath) as SourceFile;
 if (fileNode == null || fileNode.UsingList == null)
   return;
 lbUsedNamespaces.Items.Clear();
 for (int i = 0; i < fileNode.UsingList.Count; i++)
 {
   string strUsing = fileNode.UsingList.GetKey(i) as String;
   if (String.IsNullOrEmpty(strUsing))
     continue;
   lbUsedNamespaces.Items.Add(strUsing);
 }
stringfilepath=@“InsertFilePathHere”;
CSharp30Parser=新的CSharp30Parser();
SourceFile fileNode=parser.ParseFile(filePath)作为SourceFile;
if(fileNode==null | | fileNode.UsingList==null)
返回;
lbUsedNamespaces.Items.Clear();
对于(int i=0;i
可以使用DXCore和CodeRush中的解析器来实现这一点

在10.2版中,我们为C#和VB(可自由下载的DXCore的一部分)发布了独立解析器库,因此引用解析器库将使您能够轻松完成所需的工作

如果您需要这方面的帮助,只需发送电子邮件support@devexpress.com有什么问题吗

以下是一些文件中使用的代码示例,可用于用名称空间填充列表框:

 string filePath = @"InsertFilePathHere";
 CSharp30Parser parser = new CSharp30Parser();

 SourceFile fileNode = parser.ParseFile(filePath) as SourceFile;
 if (fileNode == null || fileNode.UsingList == null)
   return;
 lbUsedNamespaces.Items.Clear();
 for (int i = 0; i < fileNode.UsingList.Count; i++)
 {
   string strUsing = fileNode.UsingList.GetKey(i) as String;
   if (String.IsNullOrEmpty(strUsing))
     continue;
   lbUsedNamespaces.Items.Add(strUsing);
 }
stringfilepath=@“InsertFilePathHere”;
CSharp30Parser=新的CSharp30Parser();
SourceFile fileNode=parser.ParseFile(filePath)作为SourceFile;
if(fileNode==null | | fileNode.UsingList==null)
返回;
lbUsedNamespaces.Items.Clear();
对于(int i=0;i
谢谢Derigel..我使用Visual Studio作为编辑器,但我想通过解析一个简单的C文件基本了解R#Open API的工作原理..我们可以使用一些服务或任何其他方法来使用R#而不创建插件吗?对于我来说,理解内置函数最简单的方法是在控制台中打印。如果没有,请您建议我一些以这种简单方式进行测试的替代方法。不,目前几乎没有没有没有VS的服务。在R#6中,我们计划发布一些用于单元测试的测试框架。它包含模拟VS环境的模拟对象。感谢Derigel。我正在使用Visual Studio作为编辑器,但我想通过解析简单的C文件来了解R#Open API的工作原理。我们可以使用一些服务或任何其他方法来使用R#而不创建插件吗?对于我来说,理解内置函数最简单的方法是在控制台中打印。如果没有,请您建议我一些以这种简单方式进行测试的替代方法。不,目前几乎没有没有没有VS的服务。在R#6中,我们计划发布一些用于单元测试的测试框架。它包含模拟VS环境的模拟对象。感谢Alex和Rory的回复。。。Resharper已经在我的团队中使用,我们希望它有一些附加组件,因此我们希望在Resharper本身中找到一个解决方案……在这种情况下,是否可以将DXCore库与Resharper一起使用(不使用CodeRush)?确实,DXCore与DevExpress@另外还有CodeRush和CodeRush Xpress分开提供(微软赞助的免费版本)应该与我们的竞争对手合作。如果您遇到问题,请随时联系支持人员,他们将以任何方式帮助您。谢谢Rory,这对我来说确实是一条很好的信息…我将尝试在我的项目中使用DXCore。谢谢Alex和Rory的回复…我的团队已经使用了Resharper,我们希望有一些附加组件,所以我们想在重塑器本身中找到一个解决方案…在这种情况下,是否可以将DXCore库与resharper一起使用(不使用CodeRush)?确实,DXCore与DevExpress@另外还有CodeRush和CodeRush Xpress(由Microsoft赞助的免费版本)分开提供应该与我们的竞争对手友好相处。如果您遇到问题,请随时联系支持人员,他们将以任何方式帮助您。谢谢Rory,这对我来说确实是一条很好的信息……我