问题标签 [codedom]
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.
c# - CodeDom.compiler 内存
我正在运行时生成程序集。问题是我完成后无法摆脱它。我需要销毁我创建的这个组件
asp.net-mvc - F# Asp.Net CodeDom ProviderOptions Issue
I'm creating an ASP.NET MVC application using F# on IIS 7.
When I attempt to run it from the browser, I'm met with a YSOD containing the following:
[ArgumentNullException: Value cannot be null. Parameter name: dictionary]
System.Collections.Generic.Dictionary2..ctor(IDictionary
2 dictionary, IEqualityComparer`1 comparer) +12700827
System.Web.Compilation.CompilationUtil.CreateCodeDomProviderWithPropertyOptions(Type codeDomProviderType) +84
System.Web.Compilation.CompilationUtil.CreateCodeDomProviderNonPublic(Type codeDomProviderType) +16
System.Web.Compilation.AssemblyBuilder..ctor(CompilationSection compConfig, ICollection referencedAssemblies, CompilerType compilerType, String outputAssemblyName) +469
System.Web.Compilation.CompilerType.CreateAssemblyBuilder(CompilationSection compConfig, ICollection referencedAssemblies, String generatedFilesDir, String outputAssemblyName) +127
System.Web.Compilation.BuildProvidersCompiler.ProcessBuildProviders() +675 System.Web.Compilation.BuildProvidersCompiler.PerformBuild() +46 System.Web.Compilation.ApplicationBuildProvider.GetGlobalAsaxBuildResult(Boolean isPrecompiledApp) +11321455
System.Web.Compilation.BuildManager.CompileGlobalAsax() +50 System.Web.Compilation.BuildManager.EnsureTopLevelFilesCompiled() +872
I looked up the method using Reflector to see if it could give me any more context and found that it was failing on the first line
It leads me to believe that the propertyOptions I've specified in my Web.config for the F# CodeDom are incorrect. However, if I remove them I receive the same error.
Any ideas on correcting this error?
c# - 动态代码生成
我目前正在开发一个应用程序,您可以在其中创建“程序”而无需编写源代码,如果您愿意,只需单击并播放。
现在的问题是如何从我的数据模型生成可执行程序。有很多可能性,但我不确定哪一个最适合我。我需要生成具有类和命名空间的程序集以及可以成为应用程序一部分的所有内容。
CodeDOM 类:我听说这个类有很多限制和错误。我需要在方法参数和返回值上创建属性。这支持吗?
以编程方式创建 C# 源代码,然后在其上调用 CompileAssemblyFromFile:这会起作用,因为我可以生成任何我想要的代码并且 C# 支持大多数 CLR 功能。但这不会很慢吗?
使用反射 ILGenerator 类:我认为这样我可以生成所有可能的 .NET 代码。但我认为这比其他方法更复杂,更容易出错?
还有其他可能的解决方案吗?
编辑:该工具通常用于开发应用程序,它不限于特定域。我不知道它是否可以被认为是一种可视化编程语言。用户可以创建类、方法、方法调用、各种表达式。它不会有很大的限制,因为您应该能够做实际编程语言中允许的大多数事情。目前,用户仍然必须将很多东西写成文本,但最终的目标是,几乎所有东西都可以一起点击。
vb.net - 使用 CodeDom 的 VB.NET 部分方法的解决方法?
我知道 CodeDom 不支持部分方法,但是有解决方法吗?我找到了C# 的解决方法,但我需要 VB.NET 的解决方法。谢谢。
c# - 是否可以通过阅读源代码来构造对象?
背景
我有一些脚本作为构建过程的一部分运行,它们查看各种源代码文件并为我生成更多源代码。
脚本使用 CodeDom 生成它们,它们.cs
使用简单的文本阅读器读取文件。
问题
其中一个脚本正在寻找一个名为的特定类属性的使用PageMenuItem
,其目的是构建页面菜单项的静态列表。
它现在通过读取所有.cs
文件并查找"PageMenuItem"
属性来执行此操作,然后计算参数的数量并尝试找出正在使用的构造函数,以便它可以分解各种信息。
有 7 个PageMenuItem
不同参数的构造函数,因此很难从.cs
源代码中确定正在使用哪个构造函数以及如何解析信息。
我不想自己解析文本,而是想简单地PageMenuItem
在内存中构造一个对象,然后使用它的属性。
所以,我需要一种从.cs
文件中获取属性声明并从中构造一个新实例的方法PageMenuItem
。
那可能吗?
问这个问题的另一种方式:
给定这个字符串:
如何创建该类型的对象MyAttribute
以便我可以使用该对象?我可以完全访问定义MyAttribute
.
c# - Visual Basic.NET 与 C# 中的命名空间之间的区别以及如何处理它们
在 C# 中,如果你这样做,它将编译:
但是,如果您在 VB.NET 中尝试相同的操作,则不会:
我得到(取决于我尝试使用“测试”的方式)“'名称'不是'<默认>'的成员。” 或“未定义类型'Name.Test'。” 在我的错误列表中。我找到了两种让它工作的方法,但对用户的期望都不合理。一种是从项目属性中删除“根命名空间”。另一种是在“全局”和“名称”之间包含该名称空间。
我制作了一个自定义工具,它使用 CodeDom 为 C# 和 VB.NET 生成代码。这就是为什么上述两个修复都不可行的原因:我不能指望我的用户有一个空的根命名空间,而且我不想在我的代码生成中执行特定于 VB 的技巧(有点打败了使用语言中立工具的目的,不是吗?)例如选择“根命名空间”(不是我不知道怎么想的)并将其包含在我的代码生成中。
我也不想遗漏全局修饰符,因为它可以保护该工具免受用户为生成的输出选择错误名称的影响。有人对我应该如何处理这个有建议吗?
security - 限制 codedom 编译的程序集
我为我的应用程序编写了一个插件管理器,它利用 codedom 将 c# 代码编译到类库中并实例化它的类型。它工作得很好,现在我希望限制已编译程序集的权限。不幸的是,我不知道该怎么做。据我了解,我应该以某种方式使用 CompilerParameters.Evidence,但我不清楚如何使用。为了清楚起见,我不想简单地将组件分类为某个区域,我想将其限制为在插件管理器构造函数中作为参数传递的权限集。我还想提一下,我不会将程序集加载到新的 appdomin 中,它与应用程序的其余部分在同一个域上执行。
谢谢。
asp.net - 如何将 ASP.net webservice 指令添加到 CodeDom 生成的 .asmx 文件
我该如何添加
到 CodeDom 生成的 .asmx 文件的顶部?
这里有一些代码可以进一步填写这个问题:
.net - 哪些 .NET 编程语言有 CodeDom 提供程序?
除了 C#、VB.NET、C++(托管和 C++/CLI)和 F#,哪些 .NET 编程语言有自己的 CodeDom 提供程序?
c# - 使用 Codedom 生成 C# 自动属性
有没有办法使用 Codedom或我可以使用的其他一组库生成 C# 自动属性?