用于 C# 和 VB.NET 的代码转换 Visual Studio 插件






4.24/5 (9投票s)
在工具菜单中添加一个从 C# 转换为 VB.NET 以及从 VB.NET 转换为 C# 的按钮
引言
此解决方案包含一个 Visual Studio 插件项目。
该插件在工具菜单中添加一个按钮,用于将 VB.NET 代码相互转换成 C#。
该解决方案还包含一个用于该插件的安装项目。
背景
我创建这个项目是作为我学习插件编程工作的一部分。我选择了代码转换,因为我找不到一个能够方便地从 C# 转换为 VB.NET 以及从 VB.NET 转换为 C# 的工具。
该插件使用一个外部服务,可以在 这里 找到。

您可以轻松更改提供程序或使用本地代码(如果您有的话 - 我找不到一个好的本地转换器的示例,这就是为什么我使用了外部服务)。
注意:在使用外部服务时,您必须连接到互联网才能使用该插件。
Using the Code
这是 Exec
方法,它在用户点击按钮时运行
//
public void Exec(string commandName, vsCommandExecOption executeOption,
ref object varIn, ref object varOut, ref bool handled)
{
try
{
handled = false;
if (executeOption == vsCommandExecOption.vsCommandExecOptionDoDefault)
{
if (commandName == "CodeConvert.Connect.CodeConvert")
{
handled = true;
string url =
"http://www.carlosag.net/Tools/CodeTranslator/Translate.ashx";
string parameters = String.Empty;
string remark = String.Empty;
string code = Clipboard.GetData(DataFormats.Text).ToString();
if (_applicationObject.ActiveDocument.Name.EndsWith("cs"))
{
remark = "//C# converted code, conversion by:
http://www.carlosag.net/Tools/CodeTranslator/ " +
Environment.NewLine;
parameters = "Code=" + System.Web.HttpUtility.UrlEncode(code) +
"&Language=VB&DestinationLanguage=C#";
}
else if (_applicationObject.ActiveDocument.Name.EndsWith("vb"))
{
remark = "'VB.NET converted code, conversion by:
http://www.carlosag.net/Tools/CodeTranslator/" +
Environment.NewLine;
parameters = "Code=" + System.Web.HttpUtility.UrlEncode(code) +
"&Language=C#&DestinationLanguage=VB";
}
if (remark != String.Empty)
{
string result = HttpWebRequestHttpPost(url, parameters);
((TextSelection)_applicationObject.ActiveDocument.Selection)
.Text = remark + result + Environment.NewLine; ;
}
else
{
MessageBox.Show
("CodeConvert can be used for .vb or .cs files only");
}
return;
}
}
}
catch (Exception ex)
{
MessageBox.Show("Error:" + ex.Message);
return;
}
}
//
插件通过当前文件扩展名来确定要转换的内容 - 因此,当您想将 VB.NET 转换为 C# 时,您需要在 *.cs 文件中粘贴 VB.NET 代码,而当尝试将 C# 转换为 VB.NET 时,您需要在 *.vb 文件中粘贴 C# 代码(粘贴 -> 点击按钮,原始代码在您的剪贴板中)。
示例
图 1:原始 VB.NET 代码(复制)。
图 2:工具菜单。
图 3:C# 代码被粘贴到目标文件中。
尽情享用!
历史
- 2007 年 11 月 20 日:初始发布