问题标签 [csharpcodeprovider]
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# - NHibernate 查询只运行一次,然后抛出 InvalidCastException
我有一个简单的查询,如下所示:
它成功运行一次,但在第二次(或第三次、第四次等)执行时,它会抛出一个无效的强制转换异常,例如:
致命错误:System.InvalidCastException:无法将类型 'System.Linq.EnumerableQuery`1[<>f__AnonymousType0`3[System.Int64,System.DateTime,Team]]' 转换为 'System.Collections.Generic.IEnumerable`1[< >f__AnonymousType0`3[System.Int64,System.DateTime,Team]]'。在 NHibernate.Linq.DefaultQueryProvider.Execute[TResult](表达式表达式)
堆栈跟踪的其余部分因勇敢而被压制。
查询总是在出错之前在数据库中执行。它不返回任何记录,但没关系。如果我重建解决方案并再次运行,查询将在第一次再次执行,然后在我运行它时开始互相抛出异常。其他查询每次运行都没有任何问题。我不知道是什么导致了错误。
重要的是要说这段代码是在CSharpCodeProvider环境中运行的,但我不知道它是否能有所作为。
更新
即使使用最简单的查询形式也会发生这种情况:
仅第一次运行正常。但是,如果我将 annon 对象从 更改{ x.Id }
为{ x.TeamId }
,例如,它在第一次运行正常,那么异常再次发生。
更新 2
我只是意识到,如果我将以下属性添加到 annon 对象,则查询每次都有效:
那么,可能是缓存问题?
更新 3
我将 NHibernate 从3.3
to更新4.0.0.4
,它解决了几乎所有问题,除了一个查询:
错误信息:
GenericADOException:值“{ HoliDayCities = System.Collections.Generic.List`1[System.Int64], HoliDayStates = System.Collections.Generic.List`1[System.Int64], Date = 01/02/2015 00:00 :00 }" 不是 "<>f__AnonymousType1`3[System.Collections.Generic.List`1[System.Int64],System.Collections.Generic.List`1[System.Int64],System.DateTime]" 并且不能用于这个集合。参数名称:值
如果我像前面提到的那样Rnd()
在作用域上添加函数,它就可以正常工作。Select
该问题仅发生在匿名对象上。
c# - 使用 CSharpCodeProvider 进行 C# 运行时编译
我使用本教程取得了成功:http: //www.codeproject.com/Tips/715891/Compiling-Csharp-Code-at-Runtime为 C# 代码的运行时编译和执行建立了一个框架。以下是我目前拥有的代码:
"return 2;"
我可以将字符串(例如)形式的语句传递给InterpretString()
它,它将作为Custom()
函数的一部分进行编译和执行。但是我想知道是否可以使用相同的方法来执行我原始文件中的方法。例如,假设 CodeCompiler
该类有另一个returnsTwo()
返回整数 2 的方法。有没有办法通过传递"CodeCompiler.returnsTwo();"
或类似的字符串来调用这样的方法InterpretString()
?
c# - 如果必须可以从任何 Prism 模块访问此代码,我应该将从 CodeDOM Graph 编译的代码放在我的 Prism 模块化应用程序中的什么位置?
我开发 Prism 6 WPF MVVM 模块化应用程序。我的应用程序的解决方案包括一个 Shell 项目和许多 Prism 模块项目。在我的应用程序中,我必须实现动态源 C# 代码生成和编译 (CodeDom)。我假设将代码(构建 CodeDOM 图并从中编译程序集)放在某个公共类库(CL 项目)中,该类库从我的应用程序解决方案中的任何 Prism 模块项目中“可见”,以便我可以调用公共方法来构建 CodeDOM 图和编译来自应用程序中任何 Prism 模块的程序集。但是我不知道如何从我的应用程序中的任何 Prism 模块访问正在编译的程序集(即每个 prism 模块都必须能够调用从 CodeDOM 图编译的程序集)。我假设 CodeDOM 图将作为类库编译为程序集(GenerateExecutable 属性设置为 false)。我希望将编译后的程序集写入内存而不是磁盘(CompilerParameters.GenerateInMemory = true)。如果我希望从我的应用程序中的所有 prism 模块都可以看到从 CodeDOM 图编译的程序集,并且所有这些模块都可以从程序集调用公共方法和属性,我应该怎么做?我一开始使用的是动态源 C# 代码生成,但我以前没有使用过它。因此,您的帮助将不胜感激。
c# - C# csharpcompiler 编译器程序集不能导入任何东西
我一直在尝试将命令系统添加到服务器应用程序
问题是:不在项目中但
在运行时从另一个文件夹编译的命令 .cs 文件不能包含任何内容。
编译器代码:
外部 .cs 代码文件:
错误:
c# - Namespace not found error when compiling assembly from files
What I'm trying to achieve is generate a project dynamically from c# classes generated by me. This classes' content are a similar content of code-first code generation of entity framework.The content looks as follows:
I generate this files from the tables in my database, and then try to compile it programmatically so that I can reference the generated project in another project that works with an API.
The main errors while compiling is:
The type or namespace name 'KeyAttribute' does not exist in the namespace 'System.ComponentModel.DataAnnotations' (are you missing an assembly reference?)
The type or namespace 'Key' could not be found
The type or namespace 'Table' could not be found.
I'm using 'CSharpCodeProvider'
And I have the following referenced Assemblies
I have an string array with the files' paths called sources, and I try to compile with the following line
Help is much appreciated.
c# - 将自定义指令引入由 CSharpCodeProvider 编译的 C# 代码
我想使用 CodeDomProvider 编译 C# 代码(或预编译),如下所示:
我想知道当它遇到时告诉 CodeDomProvider.Compile(或 CSharpCodeProvider)有多实惠
它应该以不同于普通 C# 代码的方式处理。我该怎么做?我可以从 CSharpCodeProvider 继承吗?在这种情况下,我可以通过回调来执行自定义操作吗?
c# - CreateValidIdentifier() 无法检查名称
我正在使用 CreateProvider() 来检查字符串是否是好的变量名。
令人惊讶的是,它还给了我“ab.cd”。Visual Studio 从不允许这样的名称。这是怎么发生的?我再次尝试使用“System.Type”:
它给了我'System.Type'。这令人不安。
c# - 如何将变量从windows应用程序传递到asp网站?
我正在尝试为我的网站构建桌面界面并希望将变量传递给 asp 服务器。但找不到更简洁地传递这些值的正确方法我想将变量从单独的窗口窗体应用程序传递给单独的 asp服务器。我不想将值传递给网络浏览器,而是将它们直接传递给网络服务器。
c# - CSharpCodeProvider,编译时的进度信息
我从随机大小的数据在内存中生成一些代码。这可以生成类似 15K 的类,甚至更多。代码存储在我与类中的CompileAssemblyFromSource
方法一起使用的列表中CSharpCodeProvider
。
问题是,在编译时,我想要一份进度报告,或者可能是正在发生的事情的输出。目前,我的应用程序只是坐在那里等待 5 或 10 分钟。
有没有办法知道这需要多少时间,或者看看发生了什么。也许是另一个想法?我希望答案不仅仅是一条信息说这个过程可能需要几分钟。
c# - 在运行时创建属性并传递值
我找到了创建运行时函数的示例。
主要的:
主要问题是如何在运行时创建属性并将值传递给它Main
?