草庐IT

c# - 将 C# 6 功能与 CodeDomProvider (Roslyn) 结合使用

CodeDomProviderobjCodeCompiler=CodeDomProvider.CreateProvider("CSharp");CompilerParametersobjCompilerParameters=newCompilerParameters();...CompilerResultsobjCompileResults=objCodeCompiler.CompileAssemblyFromFile(objCompilerParameters,files.ToArray());当我编译我的文件时,我得到:FileFunctions.cs(347):Error:Une

c# - 在 C#6 (Roslyn CTP6) 中为字符串插值指定语言环境

C#6中的字符串插值让我可以这样写:decimalm=42.0m;stringx=$"Thevalueis{m}";但是,字符串格式化的一个非常常见的用例是指定用于格式化值的语言环境。假设我需要使用InvariantCulture进行上面的格式化操作,它的语法是什么?Thisdiscussion建议我应该能够做到这一点:stringx=INV($"Thevalueis{m}");其中INV定义为publicstaticstringINV(IFormattableformattable){returnformattable.ToString(null,System.Globalizati

c# - 在 Roslyn 中使用 System.Dynamic

我修改了昨天发布的新版Roslyn附带的示例以使用dynamic和ExpandoObject,但我收到一个编译器错误,我不确定如何修复。错误是:(7,21):errorCS0656:Missingcompilerrequiredmember'Microsoft.CSharp.RuntimeBinder.CSharpArgumentInfo.Create'你不能在新编译器中使用动态吗?我怎样才能解决这个问题?这是我更新的示例:[TestMethod]publicvoidEndToEndCompileAndRun(){vartext=@"usingSystem.Dynamic;public

c# - 找不到部分路径 ... bin\roslyn\csc.exe

我正在尝试运行从TFS(TeamFoundationServer)源代码管理中检索到的ASP.NETMVC(模型-View-Controller)项目。我已经添加了所有程序集引用,并且能够成功构建和编译,没有任何错误或警告。但是我在浏览器中收到以下错误:Couldnotfindapartofthepath'C:\B8akWorkspace\B8akProject\B8akSolution\B8AK.Portal\bin\roslyn\csc.exe'.这是错误页面的完整屏幕截图。经过几天的研究,我明白了Roslyn是一个提供高级编译功能的.NET编译器平台。但是,我不明白为什么我的构建

让代码帮我们写代码(一)

Hello,大家好,又是好久不见,最近太忙了(借口)。看了下日志,有2个月没写文章了。为了证明公众号还活着,今天必须更新一下了。在我们的开发过程中,总有那么些需求是那么的变态。常规的方案已经无法满足。比如某些规则非常复杂,而客户又经常要修改它。那么我们可能需要把这部分代码直接做为配置文件提取出来。在每次修改后直接热更新进我们的程序。比如我们做低代码工具的时候可能需要根据用户的输入直接动态生成某些类型。再比如我们做BI工具的时候可能需要根据用户选择的表直接动态生成Entity的类型。碰到类似需求的时候我们该怎么办?今天就来整理一下.NET平台关于动态代码生成的一些技术方案。ClassDescri

让代码帮我们写代码(一)

Hello,大家好,又是好久不见,最近太忙了(借口)。看了下日志,有2个月没写文章了。为了证明公众号还活着,今天必须更新一下了。在我们的开发过程中,总有那么些需求是那么的变态。常规的方案已经无法满足。比如某些规则非常复杂,而客户又经常要修改它。那么我们可能需要把这部分代码直接做为配置文件提取出来。在每次修改后直接热更新进我们的程序。比如我们做低代码工具的时候可能需要根据用户的输入直接动态生成某些类型。再比如我们做BI工具的时候可能需要根据用户选择的表直接动态生成Entity的类型。碰到类似需求的时候我们该怎么办?今天就来整理一下.NET平台关于动态代码生成的一些技术方案。ClassDescri

.NET应用系统的国际化-基于Roslyn抽取词条、更新代码

上篇文章我们介绍了VUE+.NET应用系统的国际化-多语言词条服务系统国际化改造整体设计思路如下:提供一个工具,识别前后端代码中的中文,形成多语言词条,按语言、界面、模块统一管理多有的多语言词条提供一个翻译服务,批量翻译多语言词条提供一个词条服务,支持后端代码在运行时根据用户登录的语言,动态获取对应的多语言文本提供前端多语言JS生成服务,按界面动态生成对应的多语言JS文件,方便前端VUE文件使用。提供代码替换工具,将VUE前端代码中的中文替换为$t("词条ID"),后端代码中的中文替换为TermService.Current.GetText("词条ID")今天,我们在上篇文章的基础上,继续介绍

.NET应用系统的国际化-基于Roslyn抽取词条、更新代码

上篇文章我们介绍了VUE+.NET应用系统的国际化-多语言词条服务系统国际化改造整体设计思路如下:提供一个工具,识别前后端代码中的中文,形成多语言词条,按语言、界面、模块统一管理多有的多语言词条提供一个翻译服务,批量翻译多语言词条提供一个词条服务,支持后端代码在运行时根据用户登录的语言,动态获取对应的多语言文本提供前端多语言JS生成服务,按界面动态生成对应的多语言JS文件,方便前端VUE文件使用。提供代码替换工具,将VUE前端代码中的中文替换为$t("词条ID"),后端代码中的中文替换为TermService.Current.GetText("词条ID")今天,我们在上篇文章的基础上,继续介绍