问题标签 [vbcodeprovider]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
526 浏览

c# - VBCodeProvider 不尊重providerOptions 中的OptionInfer?

我正在尝试在我的 C# 项目中动态编译一些 VB 代码,但我遇到了 VBCodeProvider 的问题。它似乎没有兑现我放入 providerOptions 字典中的 OptionInfer 标志。

我的代码如下所示:

我将 CompilerParameters.TreatWarningsAsErrors 设置为 True,然后出现以下错误:

没有“As”子句的变量声明;假定的对象类型。

但是,当我将“Option Infer On”文本放在动态源代码的顶部时,一切都很好。

任何人都可以解释一下吗?我是否使用了错误的 providerOptions 键或值?其他地方有其他设置吗?

0 投票
1 回答
945 浏览

vb.net - 需要帮助使用 VBCodeProvider 为 Silverlight 3.0 编译 DLL

我在动态编译用于 Silverlight 3.0 的 DLL 时遇到了困难。我的目标是采用我的用户提供的一些规则并将它们编译成一个 DLL 用于自定义编辑目的。

我在 Visual Studio 中创建了一个 Silverlight 类库项目,以获取用于编译 Silverlight 类库的命令行。基于此以及使用 VBCodeProvider 编译 VB 的许多示例,我想出了以下将字符串中的代码编译到 DLL 的方法:

我的单元测试类代码如下:

这不会编译并出现以下错误:

vbc:命令行(0,0):错误BC2010:编译失败:在类'Microsoft.VisualBasic.Information'中找不到'成员'IsNumeric'。这种情况通常是不匹配的“Microsoft.VisualBasic.dll”的结果。

我看过,事实上,Microsoft.VisualBasic.Information 类的 Silverlight 版本不包含成员 IsNumeric。所以我似乎正在使用 sdkpath 选项选择正确的库。但我不知道为什么我首先要调用该方法。

任何人都可以阐明如何成功地将源代码动态编译到与 Silverlight 兼容的类库中吗?TIA。

0 投票
1 回答
22257 浏览

.net - 'TestString' 未声明。由于其保护级别,它可能无法访问。(BC30451)

我正在尝试使用VBCodeProvider该类进行一些即时代码编译。我想要做的是在代码中修改我的程序集中的公共变量。

我的应用程序中有一个Public TestString As String = ""

这是我用来编译的代码:

这是我的文本框中的代码:

我得到的错误是未声明“TestString”。由于其保护级别,它可能无法访问。(BC30451)

0 投票
1 回答
1763 浏览

.net - 如何在 vb.net 中将字符串转换为代码并查看主项目的静态或公共变量

可能重复:
如何将当前程序集公开给 CodeProvider

我写了一个代码,它从 vb.net 中的文本框中转换字符串,就像在这个例子中一样:如何在 c# 中将字符串转换为代码

但是在这个类中,我不能从主项目中调用任何静态变量和方法。那是代码vb.net:

如何从主项目中调用所有静态和公共方法和变量?谢谢!

0 投票
1 回答
355 浏览

c# - 在 .NET Framework 4.0 的 AppDomain 中运行 codeCom 代码

如何在 NET Framework 4.0 中运行当前 AppDomain 中的编译代码?下面的代码可以在 NET Framework 3.5 中运行,但是 objCompilerParameters.Evidence 在 NET Framework 4.0 中已经过时了,那么如何解决呢?

0 投票
1 回答
1239 浏览

c# - 如何在 VBCodeProvider 中启用隐式续行?

从 Visual Studio 编译时,以下 VB.NET 代码可以工作:

但是,当尝试通过使用它来编译它时,CodeDom它似乎不使用隐式续行(我可以通过添加下划线使其工作,但这正是我想要避免的)。

使用的代码:

0 投票
1 回答
1297 浏览

.net - 如何使用 VBCodeProvider

我正在 Windows 7 x64 上使用 .NET Framework 4.0 编写 Windows 窗体应用程序。

我的程序需要能够将一些文本编译为 EXE。我发现我可以用 VBCodeProvider 做到这一点。问题是,我不知道怎么用,已经google了,看了看MSDN文档。

0 投票
1 回答
768 浏览

vb.net - 如何在通过 CodeDom 生成的 Visual Basic 中创建可选参数?

这是问题“ CodeDom 在生成 ac# 方法时可以创建可选参数吗? ”的表亲。

我尝试了那里给出的答案。

不过,当我尝试编译时,我收到以下错误:

错误 BC30455:未为“公共函数栏”的参数“可选参数”指定参数(可选参数作为整数)作为整数

我已将其提炼为不支持 OptionalAttribute、DefaultParameterValueAttribute 或两者的 Visual Basic 编译器。

这是我正在编译的蒸馏代码:

使用以下命令编译它:

产生以下输出:

如果我手动将方法签名更改为

然后它编译就好了。

所以我的问题是:

  1. 如何在通过 CodeDom 生成的 Visual Basic 中创建可选参数?
  2. vbc 甚至支持使用 OptionalAttribute 和/或 DefaultParameterValueAttribute 吗?
  3. 如果 vbc 不支持这些属性,是否有任何可能的方法来创建可选参数而不使用 CodeSnippetStatement?
  4. 如果没有其他方法,那么是否有可能挽救我使用 CodeDom 完成的其他工作,这样我最终不必手动生成我的方法?我是否必须在 CodeSnippetTypeMember 中手动构建其余部分?甚至起作用吗?
0 投票
1 回答
114 浏览

.net - 如何让 ByRef Arguments 在使用 Method.Invoke 动态创建的程序集中工作

我有一个要编译成程序集的文本文件,使用 VBCodeProvider 类

该文件如下所示:

这是编译代码:

我想要做的是修改方法内的注释字符串的值,以便在我从代码中调用它之后,我可以检查该值:

但是评论总是"Foo"(消息框显示"Not Allowed"),所以看起来 ByRef 修饰符不起作用

如果我在我的代码中使用相同的方法comment被正确修改。

0 投票
1 回答
507 浏览

c# - Visual Studio 2012 中是否有任何 C++ 代码提供程序

我使用以下代码作为 C# 和 VB.net 的代码提供程序

像这样,Visual Studio 2012 中是否有任何可用于 C++ 的代码提供程序