问题标签 [system-codedom-compiler]

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 回答
816 浏览

system-codedom-compiler - 编译后访问类和函数(CompiledAssembly)

这是一些示例代码。我成功地弄清楚了如何编译它。我抓住了这个位置,并能够使用 Visual Studios 对象浏览器来查看 DLL。我不知道如何获取一个类实例并调用一个函数。

0 投票
1 回答
1217 浏览

.net - 哪些 .NET 编程语言有 CodeDom 提供程序?

除了 C#、VB.NET、C++(托管和 C++/CLI)和 F#,哪些 .NET 编程语言有自己的 CodeDom 提供程序?

0 投票
1 回答
439 浏览

c# - .Net 3.5 CodeDom 编译器生成奇怪的错误

这是一个很长的范围,但我将尝试尽可能地解释这个问题。我正在使用 .Net 3.5 中的 CodeDom 编译器来编译 3 个 cs 文件...其中 2 个是从 Edmgen.exe 生成的,1 个是动态生成的文件。编译代码如下所示

当所有这三个文件一起编译时,我收到此错误

类、结构或接口成员声明中的无效标记“void”

我假设这个错误是指位于 ObjectLayer.cs 中的这行代码

部分无效 OnIDChanged();

但是,如果将这 3 个文件包含在一个新的 VS2010 项目中并通过该编译器进行编译,它们可以正常工作....此错误仅发生在 CodeDom 编译器中...“部分无效”存在一些问题。

我在这里发现了一个与此非常相似的问题 http://social.msdn.microsoft.com/forums/en-US/linqprojectgeneral/thread/85e085c8-b6ac-4cae-b59d-7b9ce7758122/

但是该修复不起作用,因为我使用的是 CodeDom 编译器而不是 VS 编译器....

我还想指出,我已经尝试过 .Net 3.5 命令行编译器 (csc.exe),而且效果也很好。而且我还在.Net 4下测试了这个确切的代码,它也可以工作。这个问题似乎只出现在 .net 3.5 下

任何人都遇到过这个问题或知道为什么 .Net 3.5 CodeDom 编译器会出现部分空洞问题?

0 投票
1 回答
1303 浏览

c# - 在 C# codedom 编译器参数中从 dll 添加程序集时出错

我正在开发 ac# codedom 项目,该项目为用户提供动态编译 c# 代码。添加 wpf 的程序集 dll 时出现错误(它适用于 winforms)。当我尝试添加像“System.Windows.Media”这样的引用时,它是说“在程序集中找不到####。你是否缺少一些引用”。但是,当我通过其 dll 路径(如“C:\Program Files\Reference Assemblies\Microsoft\Framework\v3.0\System.Printing.dll”添加引用时,它会说“文件 C:\Program Files\Reference Assemblies\Microsoft\Framework\v3.0\System.Printing.dll not found”但是当我将 System.Printing.dll 放到应用程序可执行文件夹中时,它工作正常。

以下是我用来添加对编译器选项的引用的代码:

我无法理解这个问题。还有其他方法可以添加 wpf 程序集吗?

谢谢

0 投票
1 回答
830 浏览

.net - 致命错误 CS0007: 意外的公共语言运行时初始化错误 - 系统找不到指定的文件

请帮我解决错误fatal error CS0007: Unexpected common language runtime initialization error - the system cannot find the file specified.

当我使用 codedom 动态编译(从 C# 表单应用程序)代码时,会引发上述错误。但是当我从测试项目编译相同的文件时没有错误:(

0 投票
2 回答
652 浏览

c# - C# 编译用户提供的代码并使用

我想要做的是允许用户在文本框中编写一个方法并让我的代码调用该方法。这最终将在一个演示小程序中用于给定目标函数的优化。

因此,我一直在使用示例控制台应用程序,但遇到了麻烦。我已经检查了堆栈溢出和 codeproject 以及其他来源,并且已经到了可以编译代码的地步。但是我迷失了如何调用它并且只访问一个方法。

我尝试了不同的组合来调用方法上的 Invoke 并不断出错。我想要做的是让用户定义一个这样的函数:

然后我可以直接调用 funcname 。如果这不可行,我会采取我能得到的。

任何帮助或指导将不胜感激。谢谢。

0 投票
2 回答
1059 浏览

c# - 使用 System.CodeDom 生成扩展方法

有没有人尝试过在 .NET 4.0 下使用 System.CodeDom 生成扩展方法?似乎没有任何方法可以将 CodeMemberMethod 或 CodeParameterDeclarationExpression 指定为扩展方法/参数。

如果这不可能,有什么好的解决方法吗?

谢谢

0 投票
1 回答
711 浏览

c# - CodeDom 生成不安全代码或替代编译方案

我刚刚完成了使用 CodeDom 开发一个相当大的项目。好吧,几乎完成了——除了一个小问题——我项目中的一个类需要这个/unsafe标签。我已经读过 CodeDom 不支持 *generation * 带有不安全指针的方法或类型,但是,我很好奇是否有某种方法可以从文件中编译类 - 已经具有不安全标签合并。我知道我可以手动创建一个 .csproj 文件并从这里启用不安全代码,但同样,我不认为我可以在从文件编译时使用这个 .csproj 文件。

最后,如果上述方法都不可行,有什么方法可以使用 C#.dll 生成源代码吗?可能与 VS 默认使用的相同。

感谢您的帮助!

埃文

0 投票
1 回答
538 浏览

c# - 用于 COM 互操作的 DLL 的运行时编译

我正在开发一个项目,该项目为用户构建数学模型,然后可以以不同的格式输出它们。现在我支持用 Python、Java、C++ 输出。这行得通,我只是自动生成代码并称之为一天。

但是,已经提出了新的要求。用户希望能够在 Excel 中使用模型。我做了一些搜索,发现http://richnewman.wordpress.com/2007/04/15/a-beginner%E2%80%99s-guide-to-calling-a-net-library-from-excel/

所以这是一个不错的开始,但我需要以编程方式执行此操作。模型作为对象存储在更大的程序中。如果用户选择导出为 Excel 的 DLL,我会采用一些样板代码并插入我想要使用的方法。

但是,似乎我需要注册 COM 互操作的代码。我的测试代码创建了一个 DLL,我可以使用它 C# 并访问它的方法。但是试图在 Excel 2000 中添加引用(我知道,我知道,公司很烂) VBA 不起作用。似乎没有创建 TLB 文件,因此没有任何内容可供加载。

如果我将生成的代码编译为独立代码并检查了使 COM 可见并注册了 com 互操作框,则会生成 TLB,但 Excel VBA 会引发自动化错误。

所以实际的问题。

1) 我怎样才能在运行时创建一个 COM 可见并为 COM 互操作重新注册的 DLL?

2)我如何让 Excel 玩得很好。

简单的示例 DLL 代码如下:

以编程方式构建 DLL 的代码如下:

0 投票
1 回答
79 浏览

c# - 在自动生成的类中引用自定义类?

我有两个类,我正在尝试使用 CodeDom 生成代码。头等舱(StudentModel),非常直接,我可以使用 CodeDom 生成。

在第二节课,即学生课中,我正在尝试参考 StudentModel 课。StudentModel 类将在生成 Student 类之前生成。

但是是否可以使用 CodeDom 生成第二类(学生)???